MYSQL select 如何在日期字段相差两年的情况下产生结果
MYSQL how select results where date fields are different by two years
我有两列,一列是 date_created,一列是 date_expired。我怎样才能得到相差 2 年以上的结果?我们知道每个证书的有效期只有 2 年。
这个例子表明证书已经过期
SELECT date_created, date_expired from cert_table
结果:
2013-10-10 18:32:54, 2015-10-10 14:33:28
假设您的列的数据类型是日期(实际上 应该是!),以下将完成这项工作:
SELECT ... FROM cert_table WHERE DATE_ADD(date_created, INTERVAL 2 YEAR) < date_expired
要获取有关日期操作的更多信息,请查看 MySQL Reference
SELECT date_created, date_expired
FROM cert_table
WHERE DATE_ADD(date_created, INTERVAL 2 YEAR) <= date_expired
或者我猜
SELECT date_created, date_expired
FROM cert_table
WHERE DATE_ADD(date_created, INTERVAL 2 YEAR) <= NOW()
UPDATE 因此,如果您将 <=
切换为 >=
,则意味着您正在搜索 valid 证书我上面的查询正在寻找过期的查询。 :-)
SELECT date_created, date_expired
FROM cert_table
WHERE DATE_ADD(date_created, INTERVAL 2 YEAR) >= date_expired
我有两列,一列是 date_created,一列是 date_expired。我怎样才能得到相差 2 年以上的结果?我们知道每个证书的有效期只有 2 年。
这个例子表明证书已经过期
SELECT date_created, date_expired from cert_table
结果:
2013-10-10 18:32:54, 2015-10-10 14:33:28
假设您的列的数据类型是日期(实际上 应该是!),以下将完成这项工作:
SELECT ... FROM cert_table WHERE DATE_ADD(date_created, INTERVAL 2 YEAR) < date_expired
要获取有关日期操作的更多信息,请查看 MySQL Reference
SELECT date_created, date_expired
FROM cert_table
WHERE DATE_ADD(date_created, INTERVAL 2 YEAR) <= date_expired
或者我猜
SELECT date_created, date_expired
FROM cert_table
WHERE DATE_ADD(date_created, INTERVAL 2 YEAR) <= NOW()
UPDATE 因此,如果您将 <=
切换为 >=
,则意味着您正在搜索 valid 证书我上面的查询正在寻找过期的查询。 :-)
SELECT date_created, date_expired
FROM cert_table
WHERE DATE_ADD(date_created, INTERVAL 2 YEAR) >= date_expired