- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
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
- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
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.
- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
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.
- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
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;
- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
thank you both
so i actually used new_date=dhms(date,00,00,00) and then applied the format datetime.
- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
You could also just write a datetime literal instead of a date literal.
datetime='02oct2014:00:00'dt;
- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
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
- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
Using Tom's method you could specify "&date.:00:00:00"dt to resolve your SAS date as a datetime.