BookmarkSubscribeRSS Feed
🔒 This topic is solved and locked. Need further help from the community? Please sign in and ask a new question.
carmendee
Obsidian | Level 7

Test_date = numeric 20160501

Desired Result = 01MAY2016:00:00:00

 

I tried the advanced expression in in Enterprise Guide:

INPUT(PUT(t1.TEST_DATE,8.),YYMMDD10.)

format= DATETIME20

Result = 01JAN1960:05:42:55

 

 

1 ACCEPTED SOLUTION

Accepted Solutions
ballardw
Super User

Your value is a date so to get a date time you need a bit more:

data want;
   datetime = dhms(input(put(20160501,8.),yymmdd8.),0,0,0);
   put datetime datetime20.;
run;

the DHMS function adds hours, minutes and seconds to a date value to create a datetime.

 

View solution in original post

2 REPLIES 2
Astounding
PROC Star

You started out well.  The formulas you applied convert from an integer to a SAS date.  So if you had picked a date format instead of a datetime format, you would see that the formula worked properly.

 

To convert from the date that you obtained to a datetime, you need to convert from days to seconds.  Multiply your result by 24 * 60 * 60.

ballardw
Super User

Your value is a date so to get a date time you need a bit more:

data want;
   datetime = dhms(input(put(20160501,8.),yymmdd8.),0,0,0);
   put datetime datetime20.;
run;

the DHMS function adds hours, minutes and seconds to a date value to create a datetime.

 

hackathon24-white-horiz.png

2025 SAS Hackathon: There is still time!

Good news: We've extended SAS Hackathon registration until Sept. 12, so you still have time to be part of our biggest event yet – our five-year anniversary!

Register Now

Creating Custom Steps in SAS Studio

Check out this tutorial series to learn how to build your own steps in SAS Studio.

Find more tutorials on the SAS Users YouTube channel.

SAS Training: Just a Click Away

 Ready to level-up your skills? Choose your own adventure.

Browse our catalog!

Discussion stats
  • 2 replies
  • 2244 views
  • 1 like
  • 3 in conversation