我有一个表,其中有一个 date_added 列和一个以天为单位设置的到期时间。
我尝试了以下方法:
select *
from `claims`
where date_added(`date_added`, interval `expire_period` day) < date(now())
我已尝试重新格式化,但仍然出现错误。
解决了:
SELECT * FROM
dk
.claims
WHERE DATE_ADD(date_added
, intervalexpire_period
day) < date(now());
最佳答案
您的 SQL 语法错误。没有函数 date_added
。你需要的是date_add
.
SELECT *
FROM claims
WHERE DATE_ADD(date_added, INTERVAL expire_period DAY) < DATE(NOW());
您的错误消息会告诉您类似以下内容:
SQL ERROR (1064): You have an error in your SQL syntax; check the manual that correcsponds to your MySQL server version for the right syntax to use near ') < date(now())' at line 1.
所以它不知道如何处理右括号。从那里,您可以回溯以查看开放括号的位置。在 date_added
旁边。那不是一个功能。
您还可以依赖数据库客户端。我在 Windows 上使用 HeidiSQL,它会突出显示所有关键字(包括函数)。 date_added
在您的查询中不是蓝色的。
关于mysql - SQL 查询以选择在同一个表的字段中添加日期的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20659033/