首页 > 解决方案 > MySql 从当前日期选择 1 周和 1 个月提前日期

问题描述

我想获取将在一周或一个月内到期的日期列表... MySQL,字段为 TIMESTAMP。

我尝试了以下查询...

SELECT CERT_ID, date(CERTVALIDITY) FROM mst_CERT WHERE date(CERTVALIDITY) > now() - 间隔 1 周 ORDER BY CERTVALIDITY;

这将返回当前日期的所有日期

SELECT date(CERTVALIDITY) from mst_CERT where curdate() = DATE(DATE_SUB(CERTVALIDITY, INTERVAL 1 week));

什么都不返回...

从 mst_CERT 中选择日期(DATE_SUB(CERTVALIDITY,INTERVAL 1 MONTH));

什么都不返回...

| CT00078      | 2020-02-28  |
| CT00098      | 2020-02-29  |
| CT00011      | 2020-03-31  |
| CT00012      | 2020-03-31  |
| CT00013      | 2020-03-31  |
| CT00014      | 2020-03-31  |
| CT00075      | 2020-03-31  |
| CT00055      | 2020-03-31  |
| CT00056      | 2021-03-31  |

标签: mysqldatetimestamp

解决方案


这将显示 7 天以外的 CERT_ID。

SELECT      CERT_ID, date(CERTVALIDITY) 
FROM        mst_CERT 
WHERE       date(CERTVALIDITY) > (NOW() + INTERVAL 7 day) 
ORDER BY    date(CERTVALIDITY);

这将在 7 天内向您显示有效的 CERT_ID。

SELECT      CERT_ID, date(CERTVALIDITY) 
FROM        mst_CERT 
WHERE       date(CERTVALIDITY) BETWEEN NOW() AND (NOW() + INTERVAL 7 day) 
ORDER BY    date(CERTVALIDITY);

推荐阅读