I am doing a case statement in SAS and want all date time variables below dd-mmm-yyyy 08:00:00 to have time set as 08:00:00 for one day and 09:00:00 for another day.
Is there an easy way to do this?
Well, I have noting to work with here, but at a guess:
proc sql; create table WANT as select case when timepart(DATETIME_VAR) < "08:00"t then input(put(datepart(DATETIME_VAR)||"T08:00:00",datetime.) else DATETIME_VAR as RESULT format=datetime. from HAVE; quit;
Well, I have noting to work with here, but at a guess:
proc sql; create table WANT as select case when timepart(DATETIME_VAR) < "08:00"t then input(put(datepart(DATETIME_VAR)||"T08:00:00",datetime.) else DATETIME_VAR as RESULT format=datetime. from HAVE; quit;
Sorry further understanding below.
CASE WHEN timepart(a.date) < '08:00:00't AND put(a.date,weekdate3.) IN ('MON','TUE','WED','THU','FRI')
THEN
WHEN timepart(a.date) < 09:00:00't AND put(a.date,weekdate3.) = 'SAT'
THEN
WHEN timepart(a.date) < 10:00:00't AND put(a.date,weekdate3.) = 'SUN'
THEN
ELSE date
END AS date2
You already have all the code there, just put it together:
case when timepart(a.date) < '08:00:00't and put(a.date,weekdate3.) in ('MON','TUE','WED','THU','FRI')
then input(put(datepart(DATETIME_VAR)||"T08:00:00",datetime.)
when ...
else ... end as DATE2
Consider
Weekday(a.date) in (2:6)
and
Weekday(a.date) = 1 (sunday) or 7 (saturday)
Available on demand!
Missed SAS Innovate Las Vegas? Watch all the action for free! View the keynotes, general sessions and 22 breakouts on demand.
Learn how use the CAT functions in SAS to join values from multiple variables into a single value.
Find more tutorials on the SAS Users YouTube channel.