我有一个文件表,文件可能有也可能没有到期日。
我需要找到所有在1个月后到期的文档
SELECT * FROM `ph_document` d
LEFT JOIN `ph_user` u ON d.user_id = u.user_id
WHERE `notification_one_month` = 0
AND `document_expiry` != 0
AND `document_expiry` >= NOW()
AND `document_expiry` <= DATEADD(m,-1,NOW)
可悲的是,此表中的日期列是INT,它们持有Unix Epoch时间戳,而实际上不是DATE
或DATETIME
,所以我有点迷路了
答案 0 :(得分:1)
您可以在数据时间中使用适当的转换,并在now()一个月之间使用
SELECT * FROM `ph_document` d
LEFT JOIN `ph_user` u ON d.user_id = u.user_id
WHERE `notification_one_month` = 0
AND `document_expiry` != 0
AND from_unixtime(`document_expiry`) BETWEEN NOW()
AND DATE_ADD(NOW(), INTERVAL 1 MONTH);