## dhms datetime conversion

Solved
Occasional Contributor
Posts: 8

# dhms datetime conversion

Hi All,

I have a problem that I have research many different ways.  I'm trying to import an excel spreadsheet that contains a date field that is customized as such  1/14/2018 10:43:00 AM which is the variable 'e' below. I imported the data using a libname, an import proc and also added options to the import with no success .  The problem is as follows

Here's the code.

data fix;

set sr222;

x=e;

dt1 = dhms(x,0,0,0);

format dt1 datetime20.:

run:

It converts that variable okay but SAS is adding to the date.  For example:

incoming date = 1/5/2018 3:10:00 PM

conversion date = 06JAN2078:15:10:00

Accepted Solutions
Solution
‎06-06-2018 05:14 PM
Super User
Posts: 2,061

## Re: dhms datetime conversion

if i understand you correctly, your x , e are datetime values and not date values, you perhaps need to do

data fix;

set sr222;

x=e;

dt1 = dhms(datepart(x),0,0,0);

format dt1 datetime20.:

run:

All Replies
Solution
‎06-06-2018 05:14 PM
Super User
Posts: 2,061

## Re: dhms datetime conversion

if i understand you correctly, your x , e are datetime values and not date values, you perhaps need to do

data fix;

set sr222;

x=e;

dt1 = dhms(datepart(x),0,0,0);

format dt1 datetime20.:

run:

Super User
Posts: 8,216

## Re: dhms datetime conversion

The difference between what you have coming in, and what you're getting, is simply the difference between SAS datetimes and Excel datetimes. One represents the number of seconds since Jan 1, 1900, while the other (SAS) represents the number of seconds since Jan 1, 1960.

To convert the datetimes you can use code like:

``````data fix;
set sr222;
dt1 = e-21916*86400;
format dt1 datetime20.:
run:

``````

Art, CEO, AnalystFinder.com

☑ This topic is solved.

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

Discussion stats
• 2 replies
• 136 views
• 0 likes
• 3 in conversation