我有一个文档表,文档可能有也可能没有到期日。
我需要查找 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
所以我有点迷失了
最佳答案
您可以在日期时间中使用正确的转换,并在一个月之间使用 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);
关于mysql - 获取1个月后过期的记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55488203/