【问题标题】:SQL - Selecting records within a certain period with unix timestamps?SQL - 在一定时期内选择带有unix时间戳的记录?
【发布时间】:2014-01-23 21:47:36
【问题描述】:

我正在尝试从相对于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 &gt;= 1389004991 相对于 NOW

以下产生不正确的结果或不正确的语法

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

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

WHERE timestampx >=(unix_timestamp(CURDATE() - INTERVAL 1 MONTH))

【问题讨论】:

  • 你的数据库引擎是,...,?
  • mySQL,对不起,我是 Stack 和编程的新手。

标签: sql timestamp


【解决方案1】:

哪个平台?

甲骨文

 CURRENT_TIMESTAMP - 1*30

或者去那里看看

Add 2 months to current timestamp

 SELECT current_timestamp - INTERVAL '1' MONTH from dual;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-12-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-06
    相关资源
    最近更新 更多