Help using Base SAS procedures

datetime format

Accepted Solution Solved
Reply
Super Contributor
Super Contributor
Posts: 444
Accepted Solution

datetime format


hi guys,

Can anyone please tell me what i am doing wrong  here

data test;

date='02oct2014'd;

format date datetime18.;

run;

the date in the output is 1/1/1960 5:33:18 AM

Thanks


Accepted Solutions
Solution
‎09-22-2014 03:01 PM
Super User
Super User
Posts: 7,060

Re: datetime format

You are trying to write a date (number of days) using a datetime format. So it is interpreting the number of days as the number of seconds.

View solution in original post


All Replies
Solution
‎09-22-2014 03:01 PM
Super User
Super User
Posts: 7,060

Re: datetime format

You are trying to write a date (number of days) using a datetime format. So it is interpreting the number of days as the number of seconds.

Trusted Advisor
Posts: 1,228

Re: datetime format

In order to get it in datetime format, try something like this

data test;

date='02oct2014'd;

new_date=date*86400;

format date date9. new_date datetime18.;

run;

Super Contributor
Super Contributor
Posts: 444

Re: datetime format

thank you both

so i actually used new_date=dhms(date,00,00,00) and  then applied the format datetime.

Super User
Super User
Posts: 7,060

Re: datetime format

You could also just write a datetime literal instead of a date literal.

datetime='02oct2014:00:00'dt;

Super Contributor
Super Contributor
Posts: 444

Re: datetime format

I know but the thing is this date variable is actually a macro var from another SAS code which resolves to 02oct2014 so I had to use the "&date"d in the dhms function

Super User
Posts: 3,256

Re: datetime format

Using Tom's method you could specify "&date.:00:00:00"dt to resolve your SAS date as a datetime.

🔒 This topic is solved and locked.

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

Discussion stats
  • 6 replies
  • 297 views
  • 5 likes
  • 4 in conversation