【发布时间】:2017-01-25 15:21:24
【问题描述】:
我正在使用 VS 2005 C# 开发的应用程序(或修复错误)。应用程序将数据保存到 SQL Server 2005。其中一条插入 SQL 语句尝试使用 GetDate() TSQL 函数将时间戳值插入到字段中作为日期时间值。
Insert into table1 (field1, ... fieldDt) values ('value1', ... GetDate());
使用GetDate() 函数的原因是SQL 服务器可能在一个删除站点,并且日期时间可能在不同的时区。因此,GetDate() 将始终从服务器获取日期。由于可以在 SQL Management Studio 中验证该功能,因此我得到了以下信息:
SELECT GetDate(), LEN(GetDate());
-- 2010-06-10 14:04:48.293 19
我意识到的一件事是长度不能达到毫秒,即 19 实际上是“2010-06-10 14:04:48”。无论如何,我现在遇到的问题是,在插入之后,fieldDt 实际上具有最多分钟的日期时间值,例如,'2010-06-10 14:04:00'。我不确定为什么。我无权使用触发器更新或更改表以更新字段。
我的问题是,如何使用 INSERT T-SQL 添加一个新行,其日期时间值(SQL 服务器的本地日期时间)精度高达毫秒?
【问题讨论】:
标签: visual-studio tsql