【问题标题】:Query for rows added within 15 minutes查询 15 分钟内添加的行
【发布时间】:2015-09-28 04:28:48
【问题描述】:

我的数据库的 entry_date 列中保存了一个日期/时间 - 示例:1436459520

我正在尝试仅抓取过去 15 分钟内添加的条目。

我认为以下内容会起作用,但没有返回任何内容。

$this->EE->db->select('entry_id, entry_date')
                     ->from('exp_channel_titles')
                     ->where('FROM_UNIXTIME("entry_date") >= DATE_SUB(CURDATE(), INTERVAL 15 MINUTE)', NULL, FALSE);

首先,我注意到我的日期被保存为格林威治标准时间,我如何确保当前日期为格林威治标准时间?

谁能告诉我这里是否还有什么特别错误的地方?

更新

我试过了:

FROM_UNIXTIME("entry_date") >= (now() - interval 15 minute)

这也不起作用。

【问题讨论】:

  • 您正在从日期中减去时间。例如从字面上做2015-07-09 minus 15 minutes,它给你2015-07-09 23:45:00。例如前一天午夜前 15 分钟。
  • 也许可以尝试使用 now() 而不是 curdate()。

标签: php mysql codeigniter date codeigniter-2


【解决方案1】:

试试:

->where('`entry_date` >= UNIX_TIMESTAMP(NOW())')

unix 时间戳从 '1970-01-01 00:00:00' UTC 偏移,因此在该格式中时区不会成为问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-02-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-18
    • 2013-12-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多