サーバーの日付形式が原因で、スクリプトが失敗します。
declare @lastDay as datetime
declare @endDay as datetime
set @lastDay = '2012-07-12 18:00:00.000'
set @endDay = '2012-07-16 18:00:00.000'
Select getdate(), @lastDay, @endDay
上記のコードでは、割り当てたデータは (yyyy-mm-dd hh:mi:ss.mmm) 形式です。しかし、sqlserver はこれを (yyyy-dd-mm hh:mi:ss.mmm) と見なします。
しかし、getdate() 関数を使用すると、SQL は (yyyy-mm-dd hh:mi:ss.mmm) 形式で返されます。問題は、値を割り当てたときにのみ発生します。
同じコードが PC では正常に動作しますが、サーバーでは失敗します。
上記のコードのサーバーで取得した結果は次のとおりです
2012-07-17 15:34:30.627 2012-12-07 18:00:00.000 NULL
そしてエラーメッセージ付き
The conversion of a char data type to a datetime data type resulted in an out-of-range datetime value.
変換機能を使用できることはわかっていますが、現在サーバーでスケジュールする必要がある dts ジョブが数百あります。これは、各パッケージを確認するための簡単な解決策ではありません。
デフォルトで (yyyy-mm-dd hh:mi:ss.mmm) を考慮するために、サーバー上のいくつかの設定を変更する必要があると思います。誰かがこれを修正する解決策を知っているなら、私を助けてください。