SAS как изменить формат даты в предложении where

У меня есть данные, дата которых хранится в yymmn6. формат и другие, которые хранятся в date9. формат

Я хочу сделать оператор proc sql с использованием предложения where, но для сравнения двух дат date9. поля должны быть в формате ггммд6. формат

есть ли эквивалент этого, который можно использовать в предложении where

proc sql;
  select dt format=yymmn6., 
  from have;
quit;

i.e.

proc sql;
  select *
  from have WHERE dt format=yymmn6. = other_date;
quit;

person shecode    schedule 01.03.2015    source источник
comment
Вы пытаетесь сопоставить даты или год / месяц?   -  person Reeza    schedule 02.03.2015


Ответы (1)


Переменная SAS, отформатированная как дата, представляет собой просто число (представляющее дни с 1 января 1960 года).

Если other_date также является значением даты SAS (независимо от формата), вам не нужно применять формат к любой переменной.

Если other_date - строка, представляющая дату (например, 201501), вы можете применить формат к dt или ввести other_date к дате SAS.

/* Apply format to dt to match other_date */
proc sql ;
  select * 
  from have
  where put(dt,yymmn6.) = other_date ;
quit ;

/* Be careful here though as 201501 will input as 2015-01-01 */
proc sql ;
  select *
  from have
  where dt = input(other_date,yymm6.) ;
quit ;
person Chris J    schedule 01.03.2015