Я довольно новичок в SAS, и недавно мы перенесли некоторые из наших наборов данных SAS в таблицу SQL Server, но мы все еще используем SAS для нашего анализа. Я столкнулся с проблемой, когда SAS пытается вносить данные из таблицы SQL Server и проверяет SAS, если дата srv_edt находится между датами SAS dos_beg_dt1 и dos_end_dt1.Форматы даты SAS, несовместимые с SQL Server Дата
Когда SAS пытается сравнить даты, я получаю сообщение об ошибке: Оператор ERROR: WHERE требует совместимых переменных.
Досье_beg_dt1, dos_end_dt1 и srv_edt (формат даты SQL) все «отображаются» в формате yyyy-mm-dd. Когда я привожу srv_edt в таблицу SAS, он считывает его как дату символа. Поэтому я попытался изменить формат дат, а затем я получу ошибку, например: ERROR: переменная srv_edt была определена как символ, так и числовая. Кажется, я не могу найти правильный формат или функцию, чтобы заставить SAS выполнить сравнение, чтобы узнать, находится ли srv_edt (SQL) между датами dos_beg_dt1 и dos_end_dt1 SAS.
код я использую следующим образом:
libname sql odbc dsn=test schema=dbo;
%let dos_beg_dt1 = %sysfunc(intnx(qtr,&date,-1,beginning),yymmdd10.);
%let dos_end_dt1 = %sysfunc(intnx(qtr,&date,-1,end),yymmdd10.);
data sample;
set sql.table;
where &dos_beg_dt1 <= srv_edt <= &dos_end_dt1;
run;
Для справки я использую SAS 9.2 для подключения через ODBC к SQL Server 2008.
Любая помощь или совет будет весьма признателен.
Благодарим вас за все возможные варианты! Поскольку я не могу повторно перенастроить данные, которые я использую, я смог предложить вам ваши данные, чтобы вытащить данные за указанный период времени. – Trish