我正在(或修复bug)在VS 2005 C#中开发的应用程序上工作。应用程序将数据保存到SQL Server 2005.其中一个插入SQL语句尝试将时间戳值插入到具有GetDate()TSQL函数作为日期时间值的字段中。将GetDate()函数的日期时间值插入到SQL Server(2005)表中?
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服务器的本地日期时间)的新行?
你说得对,G马斯特罗斯。我必须要求DBA进行更改,而且我无法将日期时间值设置为SmallDateTime数据类型的毫秒精度。谢谢! – 2010-06-10 21:57:10
由于SmallDate有限制,我必须使用FieldDt与WHERE子句的计数作为条件来查找具有新值的FieldDt。我可能需要提出更改db的请求,但是在我的工作公司需要很长时间。 – 2010-06-11 21:12:05