1. ホーム
  2. sql-server

[解決済み] DateTimeデータベースフィールドを "Now "に設定する

2022-11-23 09:32:36

質問

VB.netのコードで、SQLパラメータを使用してリクエストを作成します。それはDateTimeパラメータを値DateTimeに設定します。さて、私のリクエストはどのように見えるでしょうか?

UPDATE table SET date = "2010/12/20 10:25:00";

または

UPDATE table SET date = GETDATE();

最初のケースでは、すべてのレコードがまったく同じ時間に設定されると確信しています。2番目のケースでは、DBMSがどのようにリクエストを処理するかに依存します。SQL Serverは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;