【问题标题】:MYSQL select entries from last 24 hoursMYSQL 选择过去 24 小时的条目
【发布时间】:2014-04-11 18:00:05
【问题描述】:

我已经阅读了有关此的先前条目,但这些修复似乎不起作用。我怀疑(?)这是日期存储在数据库中的一种方式,我想它的格式。可能是错的。

无论如何:

WHERE exp_store_orders.order_status_name =  
'Approved' AND exp_store_orders.order_completed_date 
> DATE_SUB(NOW(), INTERVAL 24 HOUR) 
    LIMIT 0 , 30

这是当前的尝试。

order_completed_date 格式示例:1396891300

这是来自/用于 ExpressionEngine 的 Expresso 商店。

【问题讨论】:

    标签: mysql expresso-store


    【解决方案1】:

    order_completed_date 格式示例:1396891300

    order_completed_date 上使用FROM_UNIXTIME...

    FROM_UNIXTIME( exp_store_orders.order_completed_date )
    > DATE_SUB(NOW(), INTERVAL 24 HOUR)
    

    如果订单日期是indexed,为了使用它,将日期的另一部分转换为unix_time格式。

    示例

    exp_store_orders.order_completed_date 
    > UNIX_TIMESTAMP( DATE_SUB( NOW(), INTERVAL 24 HOUR ) )
    

    参考

    【讨论】:

    • 转换另一个操作数不是更好吗,这样MySQL可以使用索引:exp_store_orders.order_completed_date > UNIX_TIMESTAMP(DATE_SUB(NOW(), INTERVAL 24 HOUR))
    • 可以的。这完全取决于订单日期是否被索引。答案已更新。
    • 会记住,为我未来的答案。 :)
    • 这样做了,它似乎工作完美。我知道答案很简单,与格式(或类似)有关。我不知道如果没有你们,我有时也会转身。
    猜你喜欢
    • 2020-09-06
    • 1970-01-01
    • 1970-01-01
    • 2013-06-26
    • 1970-01-01
    • 2013-08-27
    • 1970-01-01
    • 1970-01-01
    • 2023-03-10
    相关资源
    最近更新 更多