2011-08-09 184 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,否則它將無法保存日期時間。

0

大多數SQL實現(引擎)確實具有CURRENT_TIMESTAMP函數。

4

一個簡單的方法就是給字段的默認約束:

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

這種方法的缺點是,你可以通過在insert子句指定它覆蓋值。

3

我個人想用GETUTCDATE()代替GETDATE()來避免混淆。

+2

我會建議要麼。如果使用它,很難擺脫本地時間。 –