I would guess a CASE statement would get it done, but if all you are doing is setting a flag, I would be tempted to do it in the data step (and this is coming from an SQL guy).
data mytimes;
input id time time.;
datalines;
1105 08:00
1106 08:30
1107 09:10
1108 10:10
1109 12:56
1110 16:59
1111 17:01
1112 23:45
;
run;
* method 1;
data mytime_flags;
set mytimes;
mytimeflag= 0;
if time <= '09:00't then mytimeflag = 1;
if time > '09:00't and time < '17:00't then mytimeflag = 2;
if time >= '17:00't then mytimeflag = 3;
run;
*method 2;
proc sql;
create table mytime_flags2 as
select id, time,
case
when time <= '09:00't then 1
when time > '09:00't and time < '17:00't then 2
when time >= '17:00't then 3
end as mytimeflag
from mytimes;
quit;
I would guess a CASE statement would get it done, but if all you are doing is setting a flag, I would be tempted to do it in the data step (and this is coming from an SQL guy).
data mytimes;
input id time time.;
datalines;
1105 08:00
1106 08:30
1107 09:10
1108 10:10
1109 12:56
1110 16:59
1111 17:01
1112 23:45
;
run;
* method 1;
data mytime_flags;
set mytimes;
mytimeflag= 0;
if time <= '09:00't then mytimeflag = 1;
if time > '09:00't and time < '17:00't then mytimeflag = 2;
if time >= '17:00't then mytimeflag = 3;
run;
*method 2;
proc sql;
create table mytime_flags2 as
select id, time,
case
when time <= '09:00't then 1
when time > '09:00't and time < '17:00't then 2
when time >= '17:00't then 3
end as mytimeflag
from mytimes;
quit;
Good news: We've extended SAS Hackathon registration until Sept. 12, so you still have time to be part of our biggest event yet – our five-year anniversary!
Check out this tutorial series to learn how to build your own steps in SAS Studio.
Find more tutorials on the SAS Users YouTube channel.
Ready to level-up your skills? Choose your own adventure.