Минутный интервал в mysql / sas или proc sql - PullRequest
2 голосов
/ 04 ноября 2010

Кто-нибудь знает, что в proc sql или шаге данных есть функция, с помощью которой я могу преобразовать значение даты и времени в: интервал 15 минут, например:

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

Ответы [ 2 ]

1 голос
/ 04 ноября 2010

Звучит так, будто вы хотите применить формат к минутному компоненту значения даты и времени.

Используя 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' я применяю формат.

НТН.

1 голос
/ 04 ноября 2010

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

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

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

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

...