Returns a FIXED BINARY (31,0) value for the number of days corresponding to the date d. The value is in Lilian format.
DAYS (d, p, w)
d is a string expression representing a date. If not specified, DAYS uses the value returned by DATETIME(). The value for d must have a computational type and should have a character type. If not, the DAYS function converts d to character.
p is a supported date/time pattern. If not specified, DAYS uses the value YYYYMMDDHHMISS9999. Like the value for d, p must have a computational type and should have a character type. If not, the DAYS function converts p to character.
w is an integer expression value of the century window to be used for any two-digit year formats.
This example uses the DAYS function to return the number of days from the start of the Lilian calendar to a specified date.
dt: proc options(main); dcl wkdays (7) char (6) var static init ('Sun', 'Mon', 'Tue', 'Weds', 'Thurs', 'Fri', 'Sat'); dcl (string, pattern) char (80) var ; dcl str char (80) var; dcl f float bin (52); dcl d fixed bin (31); d = 0; string = '14.02.2014'; pattern = 'DD.MM.YYYY'; put skip; d= days(string, pattern, 0); put skip list ('On Feb 14, 2014, ' || trim(d) || ' days elapsed since the start of the Lilian calendar.'); put skip; put skip list ('Feb 14, 2014 was on a ' || wkdays(weekday(d))); put skip; f= secs(string, pattern, 0); put skip list ('On Feb 14, 2014, ' || trim(f) || ' seconds elapsed since the start of the Lilian calendar.'); put skip; put skip list ('Converting the number of days elapsed back to the original pattern: '); str = daystodate(d, pattern); put skip list (str); put skip; put skip list ('Converting the number of seconds elapsed back to the original pattern: '); str = secstodate(f, pattern); put skip list (str); put skip; put skip list ("Converting the original date/time stamp to 'YYYYMMDD' : "); str = repattern((str), 'YYYYMMDD', pattern, 1976); put skip list (str); end;
The above code sample prints the following:
On Feb 14, 2014, 157543 days elapsed since the start of the Lilian calendar.
Feb 14, 2014 was on a Fri
On Feb 14, 2014, 1.361171520000000E+010 seconds elapsed since the start of the Lilian calendar.
Converting the number of days elapsed back to the original pattern:
14.02.2014
Converting the number of seconds elapsed back to the original pattern:
14.02.2014
Converting the original date/time stamp to 'YYYYMMDD' :
20140214
None.
Description
The DAYS built-in function returns either the number of days corresponding to a date/time pattern string, or the number of days for today's date.
See the help topic Date/Time Built-in Functions for more information about Lilian format and supported date/time patterns.