雪花 date_trunc 从日期中删除时间
Snowflake date_trunc to remove time from date
我有雪花列,其中包含 yyyy-mm-dd hh:MM:ss 格式的日期。
我使用下面的函数
date_trunc('DAY', '2019-09-23 12:33:25')
输出:2019-09-23 00:00:00
根据 documentation 预计:2019-09-23
这是一个错误还是有任何其他方法可以完全删除时间组件?
取决于你想对日期做什么,午夜时间是可以的。
如果你真的必须摆脱它,这会起作用:
cast(date_trunc('DAY', '2019-09-23 12:33:25') as date)
date_trunc 如文档所述,将时间戳截断为不同粒度的值。但结果仍然是一个时间戳,因此输出格式。
如果您只想要截断的日期,按照 cmcau 提到的那样转换为 date
是一种简单的方法。但是,如果您要转换为 date
,则无需截断,因为它们是相同的值,因此 '2019-09-23 12:33:25'::date
应该就是您所需要的。
在 Mode Analytics 等特定环境中,像其他一些答案一样投射到日期仍然会在末尾显示 00:00:00
。如果是这种情况,并且您只是将日期用于显示目的,您可以将截断的日期转换为 varchar
,而不是像这样:'2019-09-23 12:33:25'::date::varchar
请注意,如果其他答案不适合您,我只会推荐这个。
我有雪花列,其中包含 yyyy-mm-dd hh:MM:ss 格式的日期。
我使用下面的函数
date_trunc('DAY', '2019-09-23 12:33:25')
输出:2019-09-23 00:00:00
根据 documentation 预计:2019-09-23
这是一个错误还是有任何其他方法可以完全删除时间组件?
取决于你想对日期做什么,午夜时间是可以的。
如果你真的必须摆脱它,这会起作用:
cast(date_trunc('DAY', '2019-09-23 12:33:25') as date)
date_trunc 如文档所述,将时间戳截断为不同粒度的值。但结果仍然是一个时间戳,因此输出格式。
如果您只想要截断的日期,按照 cmcau 提到的那样转换为 date
是一种简单的方法。但是,如果您要转换为 date
,则无需截断,因为它们是相同的值,因此 '2019-09-23 12:33:25'::date
应该就是您所需要的。
在 Mode Analytics 等特定环境中,像其他一些答案一样投射到日期仍然会在末尾显示 00:00:00
。如果是这种情况,并且您只是将日期用于显示目的,您可以将截断的日期转换为 varchar
,而不是像这样:'2019-09-23 12:33:25'::date::varchar
请注意,如果其他答案不适合您,我只会推荐这个。