Desktop productivity for business analysts and programmers

Today() function

Accepted Solution Solved
Reply
Frequent Contributor
Posts: 104
Accepted Solution

Today() function

Hi,

I created a new column with only Today() function.  However, it returns the date as of 01Jan1960, not today's date.

 

Any idea?


Accepted Solutions
Solution
‎12-23-2015 04:24 PM
Grand Advisor
Posts: 17,325

Re: Today() function

The function is working properly, please read up on how SAS stores dates, as number of days from January 1, 1960. So it's been 20445 days since Jan 1, 1960. To view as a date, apply the desired format.

Change to your code:
TODAY() AS Today format=date9.

Example demonstration:
data _null_;

x=today();

y=x;
format y date9.;

put "Unformatted:" x "Formatted:" y;
run;


View solution in original post


All Replies
Respected Advisor
Posts: 3,062

Re: Today() function

Please supply your complete program. One possibility is that the variable you are assigning TODAY() to is fomatted as a DATETIME not as a DATE. Without your code we would just be guessing. 

Frequent Contributor
Posts: 104

Re: Today() function

 

Hi, below are the codes.  This time I did not formatt it.  The number SAS gives me for every available row is 20445. I also attached a image of the result it gave me.

 

PROC SQL;

CREATE TABLE WORK.QUERY_FOR_THE_SEASON_PARTIC_0002 AS

SELECT t1.GuestNumber1,

/* COUNT_of_GuestNumber1 */

(COUNT(t1.GuestNumber1)) AS COUNT_of_GuestNumber1,

/* Calculation */

(TODAY()) AS Today()

FROM WORK.QUERY_FOR_THE_SEASON_PARTIC_0000 t1

GROUP BY t1.GuestNumber1,

(CALCULATED Calculation);

QUIT;

 

Capture.PNG

Respected Advisor
Posts: 3,062

Re: Today() function

[ Edited ]
PROC SQL;
 
CREATE TABLE WORK.QUERY_FOR_THE_SEASON_PARTIC_0002 AS
 
SELECT t1.GuestNumber1, 

/* COUNT_of_GuestNumber1 */
 
(COUNT(t1.GuestNumber1)) AS COUNT_of_GuestNumber1, 

/* Calculation */
 
TODAY() AS Today format = date9.
FROM WORK.QUERY_FOR_THE_SEASON_PARTIC_0000 t1 GROUP BY t1.GuestNumber1, (CALCULATED Calculation); QUIT;
Frequent Contributor
Posts: 104

Re: Today() function

Hi, I wrote your codes now but it still gives me the same result--see image below.

Below are the codes:

PROC SQL;

CREATE TABLE WORK.QUERY_FOR_FILTER_FOR_QUERY__0003 AS

SELECT t1.GuestNumber,

/* COUNT_of_GuestNumber */

(COUNT(t1.GuestNumber)) AS COUNT_of_GuestNumber,

/* Today */

TODAY() AS Today

FROM WORK.QUERY_FOR_FILTER_FOR_QUERY_FOR_T t1

GROUP BY t1.GuestNumber,

(CALCULATED Today);

QUIT;

 

Thank you

Capture.PNG

 

Solution
‎12-23-2015 04:24 PM
Grand Advisor
Posts: 17,325

Re: Today() function

The function is working properly, please read up on how SAS stores dates, as number of days from January 1, 1960. So it's been 20445 days since Jan 1, 1960. To view as a date, apply the desired format.

Change to your code:
TODAY() AS Today format=date9.

Example demonstration:
data _null_;

x=today();

y=x;
format y date9.;

put "Unformatted:" x "Formatted:" y;
run;


Respected Advisor
Posts: 3,062

Re: Today() function

As Reeza has stated you left off FORMAT = date9.

☑ This topic is SOLVED.

Need further help from the community? Please ask a new question.

Discussion stats
  • 6 replies
  • 2215 views
  • 0 likes
  • 3 in conversation