我有兩列,其中一列是date_created,一列是date_expired。我怎樣才能得到結果的差異是2年+?我們知道每個證書只有2年有效。MYSQL如何選擇日期字段相差兩年的結果
這個例子表明,該證書已經過期
SELECT date_created, date_expired from cert_table
結果:(!它真的應)
2013-10-10 18:32:54, 2015-10-10 14:33:28
我有兩列,其中一列是date_created,一列是date_expired。我怎樣才能得到結果的差異是2年+?我們知道每個證書只有2年有效。MYSQL如何選擇日期字段相差兩年的結果
這個例子表明,該證書已經過期
SELECT date_created, date_expired from cert_table
結果:(!它真的應)
2013-10-10 18:32:54, 2015-10-10 14:33:28
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所以,如果你切換<=
到>=
這意味着你searcing爲有效證書,而不是我的查詢上面尋找過期的。 :-)
SELECT date_created, date_expired
FROM cert_table
WHERE DATE_ADD(date_created, INTERVAL 2 YEAR) >= date_expired
This one worked SELECT date_created,date_expired FROM cert_table WHERE DATE_ADD(date_created,INTERVAL 2 YEAR)<= NOW() – rcmpayne
假設你列的數據類型是日期,下面將做這份工作:
SELECT ... FROM cert_table WHERE DATE_ADD(date_created, INTERVAL 2 YEAR) < date_expired
要獲得有關日期的操作的更多信息,看看在MySQL Reference
您可以嘗試使用'WHERE'子句。 – fancyPants