2011-11-27 43 views
0

此SQL語句是否合法?sql語句中的減法

 SELECT firstName, lastName 
    FROM Presidents 
    WHERE (endTerm-beginTerm)>4; 

我需要找到長度超過4年的總統。 我可以在這個查詢中使用' - '嗎? 如果不是,有什麼好方法?

的數據類型是endTermbeginTerm

+0

「beginTerm」和「endTerm」列的數據類型是什麼? –

+0

什麼數據類型? – gbn

+0

對不起。是的,iits beginTerm和endTerm ill現在編輯它 – Itzik984

回答

4

比較添加4年到beginTerm,然後比較

SELECT firstName, lastName 
    FROM Presidents 
    WHERE endTerm > DATE_ADD(beginTerm, INTERVAL 4 YEAR) 

這通常是(包括使用其他RDBMS)更安全因爲如何處理期間之間的界限,減去或計算日期差異。

2

您所查詢的是正確的。 :-)但是,如果endTerm和beginTerm是DATETIME值,你可能想將它們與INTERVAL 4 YEARS

1

是的,只要endterm和beginterm列的類型接受減法。