Snowflake date_trunc для удаления времени из даты

У меня есть столбец снежинки, который содержит дату в формате гггг-мм-дд чч: мм: сс.

Я использую функцию ниже

 date_trunc('DAY', '2019-09-23 12:33:25')

Выход: 2019-09-23 00:00:00

Ожидается согласно документации: 2019-09-23

Это ошибка или есть другой способ полностью удалить компонент времени?


person Vinod Jayachandran    schedule 26.09.2019    source источник


Ответы (3)


В зависимости от того, что вы хотите делать со свиданием, вполне подойдет полночь.

Если вам действительно нужно избавиться от него, это сработает:

cast(date_trunc('DAY', '2019-09-23 12:33:25') as date)
person cmcau    schedule 26.09.2019
comment
'2019-09-23 12:33:25' :: date дает те же результаты, но короче - person Simeon Pilgrim; 27.09.2019
comment
Нет необходимости в усечении при приведении к дате. Это похоже на CAST (ROUND (3.14) AS INTEGER) - person Hans Henrik Eriksen; 09.10.2019

date_trunc, как говорится в документации, усекает временную метку до значений на разном уровне. Но результатом остается метка времени, то есть выходной формат.

если вам нужна только усеченная дата, приведение к date, как упоминает cmcau, - простой способ. Но если вы выполняете приведение к date, нет необходимости в усечении, поскольку они имеют одно и то же значение, поэтому '2019-09-23 12:33:25'::date должно быть всем, что вам нужно.

person Simeon Pilgrim    schedule 26.09.2019

В определенных средах, таких как Mode Analytics, при приведении к дате, как и в некоторых других ответах, по-прежнему отображается 00:00:00 в конце. Если это так, и вы используете дату только для отображения, вы можете взять усеченную дату и преобразовать ее в varchar, а не так: '2019-09-23 12:33:25'::date::varchar

Обратите внимание, я бы рекомендовал это только в том случае, если другие ответы не работают для вас.

person Randy Layne    schedule 15.01.2021