SQL - 使用unix时间戳选择特定时间段内的记录?

时间:2014-01-06 13:14:49

标签: sql timestamp

我正在尝试从相对于NOW的1个月大的表中提取记录。对于具有sql日期的表格,例如:WHERE DocDate>=CURDATE() - INTERVAL 1 MONTH

,这似乎很容易

但是这个表中的日期表示为unix时间戳,这看起来并不简单。到目前为止,我已经测试了以下内容:

SELECT articleviewed, COUNT(articleviewed) AS Viewed, articleviewedtitle, timestampx
FROM swdata.uos_swkb_stats_views
WHERE timestampx <= CURRENT_TIMESTAMP AND timestampx >= 1389004991
GROUP BY articleviewed
ORDER BY Viewed DESC

没关系,但我需要timestampx >= 1389004991相对于NOW

以下结果不正确或语法不正确

WHERE timestampx <= CURRENT_TIMESTAMP AND timestampx >= CURRENT_TIMESTAMP - 1 MONTH
WHERE timestampx <= CURRENT_TIMESTAMP - INTERVAL 1 MONTH

一位同事提供了以下似乎正常工作的解决方案,显然我需要转换/定义时间戳,如下所示。

WHERE timestampx&gt; =(unix_timestamp(CURDATE() - INTERVAL 1 MONTH))

1 个答案:

答案 0 :(得分:0)

哪个平台?

Oracle

 CURRENT_TIMESTAMP - 1*30

或关注那里

Add 2 months to current timestamp

 SELECT current_timestamp - INTERVAL '1' MONTH from dual;