MySQL DATE_ADD()无法正常工作

时间:2018-08-02 21:44:27

标签: mysql sql

在我的数据库中,我有一个包含一些业务报价的表。其中一列是expire,其中包含某项优惠的到期日期。

我想选择所有在10天内到期的优惠。这是我的代码:

SELECT * FROM offers WHERE TIME_ADD(NOW(), INTERVAL 10 DAYS) = expire;

我想从报价中选择所有列,其中到期日期等于现在的日期加上10天(因此它们将在10天后到期)。 MySQL不允许我这样做,它将“ = expire”标记为错误

  

语法错误意外的“过期”(expire)。

那是为什么? (我正在使用MySQL工作台btw)

2 个答案:

答案 0 :(得分:1)

如果您想查找所有在10天后到期的优惠,但不必担心它们在10天后到期的时间,则可以使用以下内容:

SELECT * 
FROM offers 
WHERE DATE(expire) = DATE_ADD(CURRENT_DATE(), INTERVAL 10 DAYS);

但是,如果您想查找所有在10天内到期的报价(精确到秒),则可以使用以下代码:

SELECT * 
FROM offers 
WHERE expire = DATE_ADD(NOW(), INTERVAL 10 DAYS);

请注意第一个查询如何使用CURRENT_DATE(),它将仅返回日期值-2018-08-03。而第二个查询使用NOW(),它将返回日期时间值-2018-08-03 08:29:00

答案 1 :(得分:0)

将“间隔10天”替换为“间隔10天”