我有orders
表,其中包含orderID
& order_date
。
我正在尝试按上周,上个月或甚至昨天查询数据,但我无法弄清楚如何从当前时间减去时间
我的order_date
字段属于TIMESTAMP
类型,任何想法,任何帮助,都将不胜感激
答案 0 :(得分:3)
使用mysql date_sub
函数
答案 1 :(得分:3)
您可以使用DATE_SUB:
... WHERE order_date > DATE_SUB( NOW(), INTERVAL 1 MONTH )
上个月,
... WHERE order_date > DATE_SUB( NOW(), INTERVAL 1 WEEK )
获得上周,
... WHERE order_date > DATE_SUB( NOW(), INTERVAL 1 DAY )
获取今天和
... WHERE order_date BETWEEN ( DATE_SUB( NOW(), INTERVAL 2 DAY ), DATE_SUB( NOW(), INTERVAL 1 DAY ) )
前一天。
这是你要的吗?
答案 2 :(得分:1)
这里的线索是DATEDIFF和HAVING。
过去30天尝试这样的事情(来自记忆):
SELECT orderID, DATEDIFF(order_date, NOW()) AS days FROM table HAVING days <= 30