Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 从GETUTCDATE算起的毫秒未存储在datetime字段中_Sql_Sql Server_Datetime - Fatal编程技术网

Sql 从GETUTCDATE算起的毫秒未存储在datetime字段中

Sql 从GETUTCDATE算起的毫秒未存储在datetime字段中,sql,sql-server,datetime,Sql,Sql Server,Datetime,我有一个将数据插入表的存储过程。表中的一列是datetime,用于存储行插入的时间戳: INSERT INTO myTable (Field1, Field2, Field3) VALUES (1, 2, GETUTCDATE()); Field3是日期时间列。当我使用simpleselect*fromMyTablequery从该表中选择数据时,所有日期时间值都以.000值显示,以毫秒为单位 如果我执行选择GETUTCDATE(),将显示毫秒数:2013-10-16 18:02:55.793

我有一个将数据插入表的存储过程。表中的一列是datetime,用于存储行插入的时间戳:

INSERT INTO myTable (Field1, Field2, Field3) VALUES (1, 2, GETUTCDATE());
Field3
是日期时间列。当我使用simple
select*fromMyTable
query从该表中选择数据时,所有日期时间值都以
.000
值显示,以毫秒为单位

如果我执行
选择GETUTCDATE()
,将显示毫秒数:
2013-10-16 18:02:55.793


为什么SELECT上的日期时间列中不存储/显示毫秒?

您必须在某个地方执行某些操作才能将其更改为smalldatetime或其他操作,因为它工作正常。我刚刚创建了一个新表,插入了如您所示的数据,查询了该表,我得到了毫秒数


我找不到任何可以在服务器级别设置精度的地方,因此必须在代码中设置精度。

您使用的是哪种日期时间类型?如果您使用的是SQL Server 2008或更高版本,则需要使用
DATETIME2
来存储精度高达毫秒的日期

“DATETIME”的精度约为1/300秒

“SMALLDATETIME”的精确度为1分钟


来源:

根据建议,问题与服务器无关。此表上有一个触发器,该触发器在插入时进行毫秒舍入。

是否通过应用程序检索此列?否,所有查询都在SSMS中执行。存储这些值的列的数据类型是什么???很可能是smalldatetime???列就是datetime,这是肯定的。
从表中选择CONVERT(VARCHAR(23),DatetimeColumn,126)是什么显示?我理解你的观点,但由于某些原因,这在我的服务器上不起作用。值直接从GETUTCTIME()传递到表中,因此没有空间将类型更改为smalldatetime。因此您可以获得秒,但不是毫秒?是的,秒很好,但每条记录的毫秒为.000,因此运行此命令,并发布结果:创建表TestTime(Test datetime)转到插入TestTime(Test)值(getutcdate())从TestTime中选择Test GO Drop表TestTime GOAny luck?结果如何?