我有两列,其中一列是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
答案 0 :(得分:1)
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()
更新因此,如果您将<=
切换为>=
,则意味着您正在搜索有效证书,而不是上面查询已过期的证书。 : - )
SELECT date_created, date_expired
FROM cert_table
WHERE DATE_ADD(date_created, INTERVAL 2 YEAR) >= date_expired
答案 1 :(得分:0)
假设您的列的数据类型是日期(确实应该是!),以下内容将完成此任务:
SELECT ... FROM cert_table WHERE DATE_ADD(date_created, INTERVAL 2 YEAR) < date_expired
要获取有关日期操作的更多信息,请查看MySQL Reference