Как получить дату n дней/месяцев/года от или до сегодняшней даты в snowflake?

#cloud #snowflake-cloud-data-platform

Вопрос:

У меня есть требование, в котором я хочу получить дату «n», количество дней/ месяцев/ лет с сегодняшнего дня или до сегодняшнего дня, чтобы в основном отфильтровать результаты запроса в snowflake.

Ответ №1:

Вы можете получить дату » n » количество дней/месяцев/лет от текущей даты следующим образом:

  • Дата 5 лет с сегодняшнего дня

Select dateadd(year, 5, current_date());

  • Дата 5 лет назад с сегодняшнего дня

Select dateadd(year, -5, current_date());

  • Дата 2 месяца с сегодняшнего дня

Select dateadd(month, 2, current_date());

  • Дата 2 месяца назад с сегодняшнего дня

Select dateadd(month, -2, current_date());

  • Дата 2 дня с сегодняшнего дня

Select dateadd(day, 2, current_date());

  • Дата 2 дня назад с сегодняшнего дня

Select dateadd(day, -2, current_date());

Официальная документация Snowflake

ДАТА

Поддерживаемые части даты и времени

Ответ №2:

Можно было бы использовать ИНТЕРВАЛЬНЫЙ артиметик:

 SELECT CURRENT_DATE()   INTERVAL '5 year';
SELECT CURRENT_DATE() - INTERVAL '5 year';
SELECT CURRENT_DATE()   INTERVAL '2 months';
SELECT CURRENT_DATE() - INTERVAL '2 months';
 

Это также позволяет комбинировать несколько уровней:

 SELECT CURRENT_DATE()   INTERVAL '1 year, 3 quarters, 4 months, 5 weeks, 6 days';