mysql - SQL 查询以选择在同一个表的字段中添加日期的行

标签 mysql sql

我有一个表,其中有一个 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, interval expire_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/

相关文章:

java - 使用jsp和servlet显示来自mysql的数据

mysql - 多列求和并更新总计字段[MySQL]

java - JPA BigInteger 正在映射到 MySQL 的十进制?

mysql - 在 sql 中计数 - 两个表

mysql - 卡在选择查询上

mysql - 如何在 VXML 中使用小数

c# - Linq(或 SQL): Get a search query and sort it order by best result

python - 以一对多关系选择和排序记录

mysql performance_schema 如何从 events_statements_current 表中获取事件时间

php - MySQL(i?) 过滤现有查询