在我的数据库中,我有一个包含一些业务报价的表。其中一列是expire
,其中包含某项优惠的到期日期。
我想选择所有在10天内到期的优惠。这是我的代码:
SELECT * FROM offers WHERE TIME_ADD(NOW(), INTERVAL 10 DAYS) = expire;
我想从报价中选择所有列,其中到期日期等于现在的日期加上10天(因此它们将在10天后到期)。 MySQL不允许我这样做,它将“ = expire”标记为错误
语法错误意外的“过期”(expire)。
那是为什么? (我正在使用MySQL工作台btw)
答案 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天”