Минутный интервал в mysql / sas или proc sql

Кто-нибудь знает, что у proc sql или data step есть функция, в которой я могу преобразовать значение datetime в интервал: 15 минут, например:

03NOV2010:00:00:02 --> 0-15
03NOV2010:00:16:02 --> 15-30 

person iamjeannie    schedule 03.11.2010    source источник


Ответы (2)


Похоже, вы хотите применить формат к минутному компоненту значения 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.

person sasfrog    schedule 03.11.2010

Один из способов - преобразовать дату в метку времени unix. Временная метка unix - это количество секунд с 1 января 1970 года. Затем вы можете взять по модулю 15 * 60 количество секунд после последней отметки 15 минут.

Например, используя текущее время now():

select now() - interval unix_timestamp(now())%(15*60) second

Это напечатает 20:00 для меня (здесь 20:08).

person Andomar    schedule 03.11.2010