SQL Server 默认日期时间戳?
Posted
技术标签:
【中文标题】SQL Server 默认日期时间戳?【英文标题】:SQL Server default date time stamp? 【发布时间】:2011-08-09 20:25:27 【问题描述】:我有一个字段,当插入某些内容时,我希望它获取当前日期和时间并将其插入数据库。有没有办法获取日期和时间,并将其设置为默认值?
目前默认值为: (getdate()) 仅设置日期。我该如何设置时间?
【问题讨论】:
你需要指定你使用什么SQL实现... @JNK:你也为此创建了一个宏吗? @voodoo 还没有,但我很接近 您的列是什么数据类型?getdate()
确实返回日期和时间,但如果您使用数据类型 date,您将只存储日期,或者如果您使用的 varchar() 不够长。
@mikael - 滚出我的脑袋。
【参考方案1】:
GETDATE()
是 SQL Server 中的日期和时间。
运行SELECT GETDATE()
来验证这一点。
您的字段的数据类型是什么?如果是DATE
,那么它也不会保存时间值。
【讨论】:
不想使用当前时间怎么办? 问题是关于返回当前日期和时间。你到底想要什么/【参考方案2】:一种简单的方法是给字段一个默认约束:
create table YourTable
(
... other columns ...
CreateDt datetime default getdate(),
... other columns ...
)
这种方法的一个缺点是您可以通过在insert
子句中指定它来覆盖该值。
【讨论】:
【参考方案3】:我个人想使用 GETUTCDATE() 而不是 GETDATE() 以避免混淆。
【讨论】:
我也建议这样做。如果使用本地时间,很难摆脱它。【参考方案4】:SYSDATETIME()
将获取当前日期和时间。
确保列的数据类型是datetime
,而不仅仅是date
,否则它将无法保存日期时间。
【讨论】:
【参考方案5】:大多数 SQL 实现(引擎)都具有CURRENT_TIMESTAMP
函数。
【讨论】:
以上是关于SQL Server 默认日期时间戳?的主要内容,如果未能解决你的问题,请参考以下文章
SQL Server - 以 HH:MM:SS 格式计算两个日期时间戳之间的经过时间