DATEADD 関数の引数の省略形の書き方
SQL Server+SQL クエリアナライザ上で実行するSQLのスクリプトを書いていて、DATEADD 関数の書き方で困りました。
現在の日時から1ヶ月後を表示するには、
(1) select DATEADD(Month, 1, GetDate())
でできますが、このときの日付要素の引数 Month には省略形が使えることになっています。
(2) select DATEADD(mm, 1, GetDate())
(3) select DATEADD(m, 1, GetDate())
で、このときに、ASPの癖で、ダブルクォートで囲って
(4) select DATEADD("m", 1, GetDate())
とやってしまったんんですが。
上記(4)の記述方法でも、開発環境では文法エラーにもならず、実行結果も期待した値が表示されました。
ところがそれを運用環境のSQL クエリアナライザで文法チェックしたら、
「パラメータ1はdateaddでは指定できません」
というメッセージがでてしまいました。
(1)の記述方法に変えたら、運用環境でも問題なく実行するようになったのですが、まったく納得いきません。
例えば実行させるクエリアナライザのバージョンによって、日付要素の引数の書き方が違うというような事があるのでしょうか?
MSのサイトで検索しても見つからなかったのですが、捜しかたが悪いでしょうか。
同じようなことを他でもやってる可能性もあり、原因を特定させないととても怖いです。
開発環境は
SQL Server Standard Edition 7.00.1063
SQLクエリアナライザ Version SQL 8.00.760
OSは…確認しそびれました。
運用環境は
すぐには判らないのですが、SQL Server7.0ではあるでしょう。