web-dev-qa-db-ja.com

T-SQLを使用して日付列に現在の日付を挿入しますか?

ユーザーがUserIDを非アクティブ化またはアクティブ化することを決定したときに、日付を挿入しようとしています。私はSPを使ってそれをトリガーしようとしていますが、どうやらこれは思っていたよりも難しいです。

私はできる

SELECT GETDATE()

日付を取得するが、GETDATEからその情報を挿入し、必要な列に入れる方法はありますか?

18
nhat

いくつかの方法。まず、[de] activationが発生するたびに行を追加する場合、列のデフォルトをGETDATE()に設定し、挿入に値を設定することはできません。さもないと、

UPDATE TableName SET [ColumnName] = GETDATE() WHERE UserId = @userId
18
harriyott

特定のテーブル(tblTable)に新しい行を挿入するには:

INSERT INTO tblTable (DateColumn) VALUES (GETDATE())

既存の行を更新するには:

UPDATE tblTable SET DateColumn = GETDATE()
 WHERE ID = RequiredUpdateID

新しい行をINSERTingするときは、テーブルにある制約を観察する必要があることに注意してください-NOT NULL制約-したがって、他の列に値を指定する必要がある場合があります。たとえば...

 INSERT INTO tblTable (Name, Type, DateColumn) VALUES ('John', 7, GETDATE())
9
El Ronnoco
_UPDATE Table
SET DateColumn=GETDATE()
WHERE UserID=@UserID
_

テーブルに挿入し、常に現在の日付を入力する必要がある場合は、GETDATE()をその列のデフォルト値として設定することをお勧めします。NULLは許可しません

5
Curt

情報をテーブルに保存する場合は、INSERTまたはUPDATEステートメントを使用する必要があります。 UPDATEステートメントが必要なようです。

UPDATE  SomeTable
SET     SomeDateField = GETDATE()
WHERE   SomeID = @SomeID
4
James Johnson

このようにデフォルトでgetdate()を使用できます SOの質問の受け入れられた回答が表示されます 。この方法では、日付を指定せず、残りを挿入するだけで、その日付が列のデフォルト値になります。

挿入の値リストで指定し、必要に応じて手動で実行することもできます。

3
Mike Walsh