0

I have stored procedure that inserts data into table. One column in the table is datetime and is used for storing the time stamp of row insert:

INSERT INTO myTable (Field1, Field2, Field3) VALUES (1, 2, GETUTCDATE());

Field3 is datetime column. When I select data from that table with simple SELECT * FROM myTable query, all datetime values are shown with .000 value for milliseconds.

If I execute SELECT GETUTCDATE(), the milliseconds are displayed: 2013-10-16 18:02:55.793

Why milliseconds are not stored/displayed in the date time column on SELECT?

4

3 回答 3

0

您必须在某处做某事才能将其更改为 smalldatetime 或其他东西,因为它工作正常。我刚刚创建了一个新表,像您显示的那样插入了数据,查询了表,我有毫秒。

我一直找不到任何可以在服务器级别设置精度的东西,所以它必须在你的代码中。

于 2013-10-16T18:22:51.320 回答
0

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

'DATETIME' 的精度约为 1/300 秒。

'SMALLDATETIME' 的精度为 1 分钟。

来源:http: //msdn.microsoft.com/en-us/library/ff848733.aspx

于 2013-10-16T20:01:45.487 回答
0

正如史蒂夫建议的那样,问题与服务器无关。此表上有一个触发器,该触发器在插入时进行毫秒舍入。

于 2013-10-17T05:12:20.843 回答