Go Premium for a chance to win a PS4. Enter to Win

x
?
Solved

AS400 DAYOFWEEK(GENERAL DATE)

Posted on 2015-02-05
12
Medium Priority
?
557 Views
Last Modified: 2015-02-07
Hi,

I want to use the DAYOFWEEK Function in an AS400 SQL call.  The date is currently  = 42041 (2/6/2015 or 20150206).

How can I use the DAYOFWEEK Function with this date format?

Otherwise how do I convert 42041 to 20150206?

Also is my terminology for 42041 (General Date) correct?  What should it be?

Thanks
0
Comment
Question by:adb11a
  • 4
  • 4
  • 3
12 Comments
 
LVL 18

Expert Comment

by:Dave Ford
ID: 40592591
How does 2015-02-06 translate to 42041 ?
0
 

Author Comment

by:adb11a
ID: 40592603
OBRGDT = 20150206

DAYS(DATE(SUBSTR(OBRGDT,1,4)||'-'||SUBSTR(OBRGDT,5,2)||'-'||SUBSTR(OBRGDT,7,2))) AS OBRGDT_1

You may ask why I don't just use OBRGDT but it is too long a story (presenting data in Excel).

My other option is to convert 42041 to 20150206 if you know how to do that?
0
 

Author Comment

by:adb11a
ID: 40592605
Sorry daveslash, should have READ:

CASE WHEN OBRGDT = 0 THEN 0  ELSE DAYS(DATE(SUBSTR(OBRGDT,1,4)||'-'||SUBSTR(OBRGDT,5,2)||'-'||SUBSTR(OBRGDT,7,2))) - DAYS('1/1/1900') + 2 END
0
Get your Conversational Ransomware Defense e‑book

This e-book gives you an insight into the ransomware threat and reviews the fundamentals of top-notch ransomware preparedness and recovery. To help you protect yourself and your organization. The initial infection may be inevitable, so the best protection is to be fully prepared.

 
LVL 49

Expert Comment

by:PortletPaul
ID: 40592612
As you refer to DAYOFWEEK I'm assuming you are using DB2 so I'd like to propose this article for reading

DB2 Basics: Fun with Dates and Times

It has numerous examples of how date/times and related functions work in DB2,  including  current date

but I don't understand "The date is currently  = 42041"
0
 

Author Comment

by:adb11a
ID: 40592632
If you open excel, type '=TODAY()', press enter then format the cell as 'General' you'll get 42041.

I need the date in this format for formatting purposes in Excel.  I just need to be able to either convet 42041 to 20150206 or use DAYOFWEEK(42041).

I looked at the site you showed me and no luck.  Still looking
0
 
LVL 49

Expert Comment

by:PortletPaul
ID: 40592659
I'm confused.
Are you performing this calculation in DB2 (where you can use DAYOFWEEK)
or in Excel (where you can use WEEKDAY)
?

e.g. In Excel
=WEEKDAY(TODAY())

and
Excel will accept dates (e.g. 31/12/1900 or 12/31/1900 etc.) depending on your locale settings


If in DB2 you would pass a timestamp field into the function

SELECT DAYOFWEEK(current date)  FROM sysibm.sysdummy1

{+edit, a correction; incorrect use of weekday in line above}
0
 
LVL 18

Accepted Solution

by:
Dave Ford earned 1200 total points
ID: 40592661
Thank you for the learning experience. I never knew you could represent a DATE like that.

This works for me:

select date(42039 + days('1900-01-01')), 
       dayOfWeek(date(42039 + days('1900-01-01')))
  from sysibm.sysdummy1

DATE            DAYOFWEEK
2015-02-06              6

Open in new window


HTH,
DaveSlash
0
 
LVL 49

Assisted Solution

by:PortletPaul
PortletPaul earned 800 total points
ID: 40592664
oh and "day zero" in Excel is 1900-12-31, add 42041 days to that and you arrive at 2015-02-06

i.e. enter 0 into cell now format that cell as a date in another cell add 42041 to that 0
0
 
LVL 49

Expert Comment

by:PortletPaul
ID: 40592667
Excellent work! (learning experience for me also)

Cheers.

sorry for the cross posting, can be a bit confusing
0
 
LVL 18

Expert Comment

by:Dave Ford
ID: 40594952
adb11a: did that solve your problem?
0
 

Author Comment

by:adb11a
ID: 40595357
Hi deveslash.

Your suggestion of:

select date(42039 + days('1900-01-01')),
       dayOfWeek(date(42039 + days('1900-01-01')))
  from sysibm.sysdummy1

works for me.

Thanks and thanks to PortletPaul.
0

Featured Post

Hire Technology Freelancers with Gigs

Work with freelancers specializing in everything from database administration to programming, who have proven themselves as experts in their field. Hire the best, collaborate easily, pay securely, and get projects done right.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

November 2009 Recently, a question came up in the DB2 forum regarding the date format in DB2 UDB for AS/400.  Apparently in UDB LUW (Linux/Unix/Windows), the date format is a system-wide setting, and is not controlled at the session level.  I'm n…
Recursive SQL in UDB/LUW (it really isn't that hard to do) Recursive SQL is most often used to convert columns to rows or rows to columns.  A previous article described the process of converting rows to columns.  This article will build off of th…
Integration Management Part 2
Want to learn how to record your desktop screen without having to use an outside camera. Click on this video and learn how to use the cool google extension called "Screencastify"! Step 1: Open a new google tab Step 2: Go to the left hand upper corn…
Suggested Courses

916 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question