Proc sql вычисляет предыдущую субботу или конец прошлой недели

Есть ли лучший способ сделать это?

asof = CAST(DATEADD(week, DATEDIFF(week,'19000101',CURRENT_TIMESTAMP),
       '1899-12-30T19:00:00') AS DATE)

По сути, я пытаюсь использовать субботу предыдущей недели в качестве своего фильтра на Proc Sql. Независимо от того, в какой день я запускаю этот запрос, он должен дать мне дату (не метку времени) прошлой субботы.

Спасибо!

это SQL-код для тераданных или SQL-сервер.

Kiran 25.10.2018 17:35

да, это SQL-код для SQL-сервера

JCP 25.10.2018 18:00

Пожалуйста, покажите, что вы используете его в фильтре. В вашем примере он создает переменную, и то, как вы фильтруете, может повлиять на логику.

Reeza 25.10.2018 22:07
ReactJs | Supabase | Добавление данных в базу данных
ReactJs | Supabase | Добавление данных в базу данных
Это и есть ваш редактор таблиц в supabase.👇
Понимание Python и переход к SQL
Понимание Python и переход к SQL
Перед нами лабораторная работа по BloodOath:
1
3
225
1

Ответы 1

%let last_saturday = intnx ('week.7', today()-1, 0);
%let last_saturday = %sysfunc(intnx (week.7, %sysfunc(today())-1, 0), yymmdd10.);
%put NOTE: &last_saturday;

%let last_saturday_sq = %sysfunc(quote(&last_saturday,%str(%')));
%put NOTE: &last_saturday_sq;

proc sql;
  … connection to … 
     (cast &last_saturday_sq as DATE) as asof
  … 

К сожалению, это не сработало. Я не уверен, почему, так как это не дает мне сообщения об ошибке.

JCP 25.10.2018 19:26

попробуйте тот же код без макропеременной, вместо этого используйте жестко запрограммированное значение и посмотрите, не произойдет ли то же самое «не сработало». Если так, то дело не в макросе. Если что-то работает, это где-то в области макроса / сквозной передачи.

Richard 25.10.2018 21:40

Другие вопросы по теме