2011-08-09 12 views
16

私は、何かが挿入されたときに現在の日付&時間を取得し、これをデータベースに挿入するフィールドを持っています。日付&の時刻を取得し、デフォルト値に設定する方法はありますか?SQL Serverのデフォルトの日付タイムスタンプ?

現在、デフォルト値は次のとおりです。(getdate())日付のみを設定します。どのように時間を設定するのですか?

+0

使用するSQLの実装を指定する必要があります。 – JNK

+1

@JNK:このマクロも作成しましたか? – VoodooChild

+1

@voodooはまだですが、私は閉じています – JNK

答えて

26

GETDATE()は、SQL Serverの日付と時刻です。

これを確認するためにSELECT GETDATE()を実行してください。

フィールドのデータ型は?それがDATEの場合、時間値も保持されません。

+1

+1:GetDateはタイムスタンプも取得します! – VoodooChild

+0

現在の時間を使用したくない場合はどうすればよいですか? – Amicable

+0

質問は、現在の日付と時刻を返すことです。あなたは正確に何をしたいですか/ – JNK

2

SYSDATETIME()は、現在の日付と時刻を取得します。

列のデータ型がdatetimeで、dateでなく、それがdatetimeを保持できないことを確認してください。

0

ほとんどのSQL実装(エンジン)はCURRENT_TIMESTAMP機能を持っています。

4

一つの簡単な方法は、フィールドをデフォルトの制約を与えることです:

create table YourTable 
    (
    ... other columns ... 
    CreateDt datetime default getdate(), 
    ... other columns ... 
    ) 

この方法の欠点は、あなたがinsert句でそれを指定することで値を上書きすることができるということです。

3

個人的に私は混乱を避けるためにGETDATE()をGETDATE()の代わりに使用したいと思います。

+2

どちらかお勧めします。あなたがそれを使うならば、現地時間を取り除くことは非常に難しいです。 –

関連する問題