查询MySQL日期时间字段以查看11个月之前的任何记录

时间:2015-05-18 22:57:58

标签: mysql sql datetime select

基本上,我有一个// ids are unique, but this also works for classes var els = $("#idname").filter(function(i, el){ return window.matchMedia('(max-width: 767px)').matches; }); els; // only matching elements 表,每天我都会运行一个cronjob来检查日志,看看11个月前订购了哪些客户,因为我需要提醒他们保修到期时间为1月。这个查询的最佳实现方式是什么?

我可以通过几种方式做到这一点,但我有兴趣看到最佳方式的意见。

3 个答案:

答案 0 :(得分:1)

我使用date_add一个月interval并将其与now()进行比较:

SELECT *
FROM   orders
WHERE  DATE_ADD (order_date, INTERVAL 11 MONTH) <= NOW()

答案 1 :(得分:1)

SELECT *
FROM orders
WHERE order_date = CURDATE() - INTERVAL 11 MONTH
;

这将找到具有order_date值的所有行,正好是11个月。

答案 2 :(得分:0)

SELECT *
FROM orders
WHERE order_date = UNIX_TIMESTAMP(DATE_SUB(curdate(), INTERVAL 11 MONTH)) 

我添加了UNIX_TIMESTAMP,因为MySQL在UNIX时间戳中存储日期