2011-11-27 9 views
0

このSQL文は合法ですか?SQL文内の減算

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

私は、4年より長い期間の社長を探す必要があります。 このクエリで ' - 'を使用できますか? もしそうでないなら、良い方法は何ですか?

データ型はendTermbeginTerm

+0

'beginTerm'と' endTerm'の列のデータ型は? –

+0

どのようなデータ型ですか? – gbn

+0

申し訳ありません。はい、iits beginTermとendTermは今すぐ編集します – Itzik984

答えて

4

とそれらを比較するようなことがありピリオド間の境界がどのように処理されるかに起因して、日付差を減算または計算するよりも効率的です。

2

あなたのクエリが正しいです。 endTermとbeginTermはDATETIME値であれば:-)しかし、あなたはより安全な、これは一般的に(他のRDBMSを使っ含む)である

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

を比較し、beginTerm上に4年間追加INTERVAL 4 YEARS

1

はい、endtermおよびbeginterm列の型が減算を受け入れる限りです。