此SQL语句是否合法?
SELECT firstName, lastName
FROM Presidents
WHERE (endTerm-beginTerm)>4;
我需要找到任期超过4年的总统。 我可以在此查询中使用“ - ”吗? 如果不是,那有什么好方法?
数据类型为endTerm
和beginTerm
答案 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列的类型接受减法。