SAS sysdate в формате PROC SQL

Когда я пытаюсь использовать Sysdate / Today()для моего PROC SQL условие запроса, как
Table_Date + 60 > Today(), возвращает числовое значение 20560. Вы можете посоветовать, как я могу преобразовать это число в дату времени.

1 ответ

  1. Если речь идет о способе отображения данных в таблице после proc sql;запроса, попробуйте применить следующий формат:

    proc sql;
    create table want as
      select Table_Date + 60 as my_date_col format=date9.  
      from have
      where Table_Date + 60 > Today();
    

    SAS хранит даты как количество дней с 1 января 1960. Для отображения этого числа в качестве «читаемой даты» можно применить один из нескольких форматов даты в соответствии format=с приведенным выше синтаксисом.

    Обратите внимание, что форматы date отличаются от форматов datetime, которые работают с базовым значением числа секунд с 01JAN1960.

    Если вы хотите преобразовать вашу дату в datetime (согласно формулировке вопроса), то вы можете просто умножить значение на 24 (hrs), 60 (mins) и 60 (secs) следующим образом:

    proc sql;
    create table want as
      select (Table_Date + 60) * 24 * 60 * 60 as my_datetime_col format=datetime19.  
      from have
      where Table_Date + 60 > Today();