有谁知道 proc sql 或数据步骤有一个功能,我可以将日期时间值转换为:15 分钟间隔,例如:
03NOV2010:00:00:02 --> 0-15
03NOV2010:00:16:02 --> 15-30
一种方法是将日期转换为 unix 时间戳。unix 时间戳是自 1970 年 1 月 1 日以来的秒数。然后您可以取模 15*60 来给出过去 15 分钟标记之后的秒数。
例如,使用当前时间now()
:
select now() - interval unix_timestamp(now())%(15*60) second
这是为我打印20:00
的(这里是 20:08。)
听起来您想将格式应用于日期时间值的分钟部分。
使用 SAS,您可以尝试以下操作:
proc format;
value min15int
00-15 = "00-15"
15<-30= "16-30"
30<-45= "31-45"
45<-60= "46-60";
run;
data test;
a='03NOV2010:00:00:02'dt;output;
a='03NOV2010:00:16:02'dt;output;
run;
data test2;
set test;
b=minute(a);
c=b;
format c min15int.;
run;
这既快又脏,您可以根据自己的要求进行调整。原理是我们只是创建一个显示格式来显示一个应用了某种格式的值。我已经单独创建了变量“b”,它只是日期时间的分钟部分,然后在变量“c”中应用格式。
hth。