ВОЗРАСТ между двумя свиданиями в снежинке
ВОЗРАСТ между двумя свиданиями в снежинке
В 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 вместе, чтобы вернуть строку, если вам это нужно... иначе я бы сам придерживался дней..