Solved
Contributor
Posts: 41

# Numeric date to date and time

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

Accepted Solutions
Solution
‎12-06-2016 12:33 PM
Super User
Posts: 13,913

## Re: Numeric date to date and time

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.

All Replies
Super User
Posts: 6,921

## Re: Numeric date to date and time

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.

Solution
‎12-06-2016 12:33 PM
Super User
Posts: 13,913

## Re: Numeric date to date and time

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.

☑ This topic is solved.