BigQuery - Legacy SQL: если сегодня ретроспективный просмотр в понедельник 3, если не в обратный просмотр 1

Использование BigQuery и Legacy SQL. Я пытаюсь изменить свое утверждение WHERE, чтобы оно оглядывалось на 3 дня назад, если текущая дата - понедельник, в противном случае оглянись назад 1.

Я не могу понять, как это сделать.

В настоящее время я просто смотрю, является ли дата текущей датой -1.

Текущий код:

WHERE
TIMESTAMP(o.last_modified_on) > DATE_ADD(TIMESTAMP(CURRENT_DATE()), -1, 'DAY')

Любое руководство будет оценено.

Думая что-то в этом направлении (примечание: это не работает)

Where CASE TIMESTAMP(ii.last_modified_on) = TIMESTAMP(CURRENT_DATE()) WHEN 
DAYOFWEEK(TIMESTAMP(ii.last_modified_on)) = 2 THEN 
DATE_ADD(TIMESTAMP(CURRENT_DATE()), -3, 'DAY') ELSE 
DATE_ADD(TIMESTAMP(CURRENT_DATE()), -1, 'DAY') END

1 ответ

WHEN TIMESTAMP(o.last_modified_on) > 
  CASE WHEN DAYOFWEEK(CURRENT_TIMESTAMP()) = 2 
    THEN DATE_ADD(CURRENT_TIMESTAMP(), -3, 'DAY') 
    ELSE DATE_ADD(CURRENT_TIMESTAMP(), -1, 'DAY') 
  END 
Другие вопросы по тегам