2011-08-09 90 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

我会建议要么。如果使用它,很难摆脱本地时间。 –