Кто-нибудь знает, что у proc sql или data step есть функция, в которой я могу преобразовать значение datetime в интервал: 15 минут, например:
03NOV2010:00:00:02 --> 0-15
03NOV2010:00:16:02 --> 15-30
Кто-нибудь знает, что у proc sql или data step есть функция, в которой я могу преобразовать значение datetime в интервал: 15 минут, например:
03NOV2010:00:00:02 --> 0-15
03NOV2010:00:16:02 --> 15-30
Похоже, вы хотите применить формат к минутному компоненту значения datetime.
Используя 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', которая представляет собой минутный компонент datetime, а затем в переменной 'c' я применяю формат.
hth.
Один из способов - преобразовать дату в метку времени unix. Временная метка unix - это количество секунд с 1 января 1970 года. Затем вы можете взять по модулю 15 * 60 количество секунд после последней отметки 15 минут.
Например, используя текущее время now()
:
select now() - interval unix_timestamp(now())%(15*60) second
Это напечатает 20:00
для меня (здесь 20:08).