MYSQL如何选择日期字段相差两年的结果

时间:2015-10-19 17:33:53

标签: mysql date operators

我有两列,其中一列是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

2 个答案:

答案 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