获取在1个月后到期的记录

时间:2019-04-03 06:11:04

标签: mysql

我有一个文件表,文件可能有也可能没有到期日。

我需要找到所有在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时间戳,而实际上不是DATEDATETIME,所以我有点迷路了

1 个答案:

答案 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);