Quartz | Level 8

## Convert start time to a differ time

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
Tourmaline | Level 20

## Re: Convert start time to a differ time

``````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;``````
4 REPLIES 4
Quartz | Level 8

## Re: Convert start time to a differ time

The start time could vary anyyhing = greater than 22:30
Tourmaline | Level 20

## Re: Convert start time to a differ time

``````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;``````
Super User

## Re: Convert start time to a differ time

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

`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;```
Quartz | Level 8

## Re: Convert start time to a differ time

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