Extraction of timepart from datetime

Accepted Solution Solved
Reply
New Contributor
Posts: 2
Accepted Solution

Extraction of timepart from datetime

Hi,

 

I want to extarct timestamp (Time_var) from sas Date_time. The format of datetime is 11-07-2015 11:46:02

So, I used the following code which is not working. I doubt that the space between the date and time is causing the error.

Time_var=timepart(Date_time);


Accepted Solutions
Solution
‎09-14-2016 06:55 AM
Super User
Posts: 6,927

Re: Extraction of timepart from datetime

The timepart() function extracts the time from a SAS datetime value, which must be a number containing the seconds starting at 01jan1960:00:00:00.

If your date_time is of type character, this won't work.

You must convert first:

data _null_;
x1 = '11-07-2015 11:46:02';
x2 = input(x1,anydtdtm19.);
x3 = timepart(x2);
format x2 datetime19. x3 time8.;
put _all_;
run;

Log:

16         data _null_;
17         x1 = '11-07-2015 11:46:02';
18         x2 = input(x1,anydtdtm19.);
19         x3 = timepart(x2);
20         format x2 datetime19. x3 time8.;
21         put _all_;
22         run;

x1=11-07-2015 11:46:02 x2=11JUL2015:11:46:02 x3=11:46:02 _ERROR_=0 _N_=1
---------------------------------------------------------------------------------------------
Maxims of Maximally Efficient SAS Programmers

View solution in original post


All Replies
Solution
‎09-14-2016 06:55 AM
Super User
Posts: 6,927

Re: Extraction of timepart from datetime

The timepart() function extracts the time from a SAS datetime value, which must be a number containing the seconds starting at 01jan1960:00:00:00.

If your date_time is of type character, this won't work.

You must convert first:

data _null_;
x1 = '11-07-2015 11:46:02';
x2 = input(x1,anydtdtm19.);
x3 = timepart(x2);
format x2 datetime19. x3 time8.;
put _all_;
run;

Log:

16         data _null_;
17         x1 = '11-07-2015 11:46:02';
18         x2 = input(x1,anydtdtm19.);
19         x3 = timepart(x2);
20         format x2 datetime19. x3 time8.;
21         put _all_;
22         run;

x1=11-07-2015 11:46:02 x2=11JUL2015:11:46:02 x3=11:46:02 _ERROR_=0 _N_=1
---------------------------------------------------------------------------------------------
Maxims of Maximally Efficient SAS Programmers
☑ This topic is SOLVED.

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

Discussion stats
  • 1 reply
  • 185 views
  • 1 like
  • 2 in conversation