2011-11-27 46 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列的类型接受减法。