在sql语句中减法

时间:2011-11-27 19:55:41

标签: mysql sql

此SQL语句是否合法?

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

我需要找到任期超过4年的总统。 我可以在此查询中使用“ - ”吗? 如果不是,那有什么好方法?

数据类型为endTermbeginTerm

3 个答案:

答案 0 :(得分:4)

在beginTerm上添加4年,然后进行比较

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

这通常(包括使用其他RDBMS)比减去或计算日期差异更安全,因为处理句点之间的界限。

答案 1 :(得分:2)

您的查询是正确的。 :-)但是,如果endTerm和beginTerm是DATETIME值,您可能希望将它们与INTERVAL 4 YEARS进行比较

答案 2 :(得分:1)

是的,只要endterm和beginterm列的类型接受减法。