VB.netコードでは、SQLパラメーターを使用して要求を作成します。 DateTimeパラメーターを値DateTime.Nowに設定すると、リクエストはどのようになりますか?
UPDATE table SET date = "2010/12/20 10:25:00";
または
UPDATE table SET date = GETDATE();
最初のケースでは、すべてのレコードがまったく同じ時刻に設定されると確信しています。 2番目のケースでは、DBMSがリクエストを処理する方法に依存します。次の2番目の質問につながります。SQLServerは、NOW()を使用して大きなテーブルを更新するときに同じ日付と時刻を設定しますか?
EDIT: NOW()(SQL Serverには存在しない)をGETDATE()に置き換えました。
SQLでは、GETDATE()
を使用する必要があります。
UPDATE table SET date = GETDATE();
NOW()
関数はありません。
質問に答えるには:
大きなテーブルでは、関数が各行に対して評価されるため、更新されたフィールドに対して異なる値を取得することになります。
したがって、すべての日付を同じ日付に設定することが要件である場合、次のような(テストされていない)ことを行います。
DECLARE @currDate DATETIME;
SET @currDate = GETDATE();
UPDATE table SET date = @currDate;
GETDATE()の代替はCURRENT_TIMESTAMPです。まったく同じことを行います。
GETDATE() を使用します
現在のデータベースシステムのタイムスタンプを、データベースのタイムゾーンオフセットなしの日時値として返します。この値は、SQL Serverのインスタンスが実行されているコンピューターのオペレーティングシステムから取得されます。
UPDATE table SET date = GETDATE()