BookmarkSubscribeRSS Feed
🔒 This topic is solved and locked. Need further help from the community? Please sign in and ask a new question.
Gil_
Quartz | Level 8
I have a table that has a start time which is a datetime field ... I need to convert the start time to a morning time if the original eq 22:30. I need it to change time to 08:00 and day would be the following day
For example

Start time new time
29Apr18 22:30:00. 30Apr18 08:00:00

29Apr18 01:00:00. 30Apr18 08:00:00
1 ACCEPTED SOLUTION

Accepted Solutions
novinosrin
Tourmaline | Level 20
data want;
starttime='29Apr18 22:30:00'dt;
if timepart(starttime)='22:30't then starttime=dhms(datepart(intnx('dtDay', starttime, 1)),8,0,0);
 format starttime datetime20.;run;

View solution in original post

4 REPLIES 4
Gil_
Quartz | Level 8
The start time could vary anyyhing = greater than 22:30
novinosrin
Tourmaline | Level 20
data want;
starttime='29Apr18 22:30:00'dt;
if timepart(starttime)='22:30't then starttime=dhms(datepart(intnx('dtDay', starttime, 1)),8,0,0);
 format starttime datetime20.;run;
ballardw
Super User

@Gil_ wrote:
The start time could vary anyyhing = greater than 22:30

But your example

29Apr18 01:00:00. 30Apr18 08:00:00

I much less than 22:30. Was that a typo of some flavor.

 

Possibly intending

  30Apr18 01:00:00. 30Apr18 08:00:00

Which would likely mean that your rule is "any time after 22:30 on one day gets advanced to 08:00 the next day 

 

   and any time prior to 08:00 gets set to 08:00 for the same day".

Example of the above rule:

data want;
   input starttime datetime.;
   format starttime datetime.;
   if timepart(starttime) ge '22:30't then wanttime=dhms(datepart(starttime)+1,8,0,0);
   else if timepart(starttime) < '08:00't then wanttime=dhms(datepart(starttime),8,0,0);
   else wanttime=starttime;
   format wanttime datetime.;
datalines;
29Apr18:22:30:00
30Apr18:01:00:00
30Apr18:12:00:00
;
run;
Gil_
Quartz | Level 8
Thank you

SAS INNOVATE 2024

Innovate_SAS_Blue.png

Registration is open! SAS is returning to Vegas for an AI and analytics experience like no other! Whether you're an executive, manager, end user or SAS partner, SAS Innovate is designed for everyone on your team. Register for just $495 by 12/31/2023.

If you are interested in speaking, there is still time to submit a session idea. More details are posted on the website. 

Register now!

What is Bayesian Analysis?

Learn the difference between classical and Bayesian statistical approaches and see a few PROC examples to perform Bayesian analysis in this video.

Find more tutorials on the SAS Users YouTube channel.

Get the $99 certification deal.jpg

 

 

Back in the Classroom!

Select SAS Training centers are offering in-person courses. View upcoming courses for:

View all other training opportunities.

Discussion stats
  • 4 replies
  • 642 views
  • 0 likes
  • 3 in conversation