#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';