【发布时间】:2011-12-06 15:03:38
【问题描述】:
我的表中存储为 bigint 的日期,并且我正在尝试选择超过 30 天的记录。我在 SO 和 Google 上看到了大量与此问题相关的问题,但我没有找到我需要的东西。
这是我所拥有的,这似乎非常低效:
SELECT
COUNT(*)
FROM
alert
WHERE
('1969-12-31 19:00:00 GMT'::timestamp + (alert.mytstamp::text)::interval) < (localtimestamp - INTERVAL '30 days')
据我了解,它将 bigint mytstamp 字段转换为时间戳,以便将其与“30 天前”时间戳进行比较。它对表中的每条记录执行此操作 :(。将当前时间戳 - 30 天转换为一次 bigint 似乎更有效,然后将其与我所有的 bigint 日期进行比较。
我的 SQL 技能很弱,所以放轻松 :)。感谢您的帮助。
【问题讨论】:
标签: sql postgresql timestamp bigint