从雪花中的日期时间减去 2 小时

Posted

技术标签:

【中文标题】从雪花中的日期时间减去 2 小时【英文标题】:Substract 2 hours from datetime on Snowflake 【发布时间】:2021-06-10 20:53:55 【问题描述】:

我正在研究 Snowflake,需要从特定日期减去 2 小时:

日期时间:2021-06-10 14:07:04.848 -0400

'2021-06-10 14:07:04.848 -0400' - 2 小时

预期结果:2021-06-10 12:07:04.848 -0400(现在是十二点)。

Datediff 不起作用:

DATEDIFF(hour,2,TO_DATE(substr(p.insertedon,1,10)))

有什么简单的方法可以做到这一点?仅减去 2 小时至今的时间 问候

【问题讨论】:

substr(p.insertedon,1,10) 只返回字符串的日期部分——没有时间。尝试先修复那部分 SQL。另外,你为什么将时间戳保存为字符串(根据你的代码,我假设这就是你正在做的事情)? 您也可以尝试使用 TO_TIMESTAMP 而不是 TO_DATE。我通常通过吐出每个部分来解决问题SELECT substr(...), TO_DATE(substr(...)), DATEDIFF(...TO_DATE(substr(...)) 这样你就可以看到它在哪里崩溃了 【参考方案1】:

使用INTERVAL

SELECT p.insertedon - INTERVAL '2 HOURS'
FROM ...

【讨论】:

以上是关于从雪花中的日期时间减去 2 小时的主要内容,如果未能解决你的问题,请参考以下文章

如何从 MySQL 中的日期时间中减去小时数?

R - 从日期减去小时数

以纪元毫秒为单位从当前日期减去两天 java [重复]

如何在oracle中减去2个日期以获得小时和分钟的结果

减去不同时区的日期时间

从 Redshift 中的 sysdate 减去 5 小时