ВОЗРАСТ между двумя свиданиями в снежинке

ВОЗРАСТ между двумя свиданиями в снежинке

В Netezza у нас есть функция AGE, но снежинка я не нашел ничего похожего

Netezza: выберите ВОЗРАСТ ('2019-12-01', '2018-12-12') - o/p: 11 мес 20 дней

Есть ли у снежинки похожая функция?

1 ответ

Решение

Итак, учитывая, что Netezza основана на PostgreSQL, поэтому AGE функция, эквивалентна функции Snowflake DATEDIFF, но, как и интервал PostgreSQL, по умолчанию он выражается в упрощенном виде: годы / месяцы / дни. Snowflake не предлагает функции для этого. Также меняется порядок параметров.

Таким образом, ваш AGE('2019-12-01', '2018-12-12') было бы DATEDIFF('days', '2018-12-12', '2019-12-01')

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

select '2018-12-12'::date AS st
,'2019-12-01'::date AS et
--,DATEDIFF('month', st,et) AS t_m
--,DATEDIFF('days', st,et) AS t_d
,DATEDIFF('year', st,et) AS y
,DATEADD('year', y, st) AS yst
,DATEDIFF('month', yst,et) AS m 
,DATEADD('month', m, yst) AS mst
,DATEDIFF('day', mst,et) AS d 
;

КАК y есть 1 и t_m 12 что я не считаю, что они должны быть, потому что это всего лишь 354 дня..

Я открою отчет об ошибке. Но если / когда это будет исправлено, вы можете сравнить y, m и d вместе, чтобы вернуть строку, если вам это нужно... иначе я бы сам придерживался дней..

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