【发布时间】:2018-02-14 00:22:21
【问题描述】:
我正在尝试为用户应用程序构建“过去 30 天”动态 SQL 日期过滤器。日期列是一个 unix 纪元毫秒时间戳。
该工具的先前迭代允许用户选择一个日期范围,我现在只是将其更改为选择最后 30 个。
数据存储在Redshift中,不支持from_unixtime。
我有两个挑战:
- 数据以 UTC 格式存储,需要使用 EST (UTC -5) 中的日期进行过滤。
- “选择过去 30 天”是指昨天午夜截断,取昨天负 29。
以前,我的代码是这样的:
"datecol" >= DATEDIFF(millisecs, '1969-12-31 19:00:00', ''start date' 00:00:00')
AND "datecol" <= DATEDIFF(millisecs, '1969-12-31 19:00:00', ''end date' 23:59:59')
应用程序将按照用户的描述更新开始日期和结束日期。此代码针对时差进行了调整。
如何使用 Redshift SQL 的约束在 Unix 时间戳上使用 GETDATE() 和 DATEADD()?
谢谢。
【问题讨论】:
标签: mysql sql datetime unix amazon-redshift