【问题标题】:Inserting datetime with milliseconds into SQL Server table issue以毫秒为单位的日期时间插入 SQL Server 表问题
【发布时间】:2016-04-04 22:55:06
【问题描述】:

我遇到了一些我认为与 SQL 中的时间分辨率有关的东西。 这是我用过的一个例子:

CREATE TABLE #table
(
    DTstamp DATETIME NOT NULL
)

INSERT INTO #table VALUES ('1 apr 2016 15:01:02:129')

SELECT DTstamp FROM #table

DROP TABLE #table

在这种情况下,SQL Server Management Studio 中显示的来自SELECT 的结果偏离了 0.001:

2016-04-01 15:01:02.130

当尝试多个值时,结果通常在插入时间的 0.003 秒内显示。有谁知道差异来自哪里?

SQL 版本:

Microsoft SQL Server 2012 (SP3) (KB3072779) - 11.0.6020.0 (X64) 
Oct 20 2015 15:36:27 
Copyright (c) Microsoft Corporation
Standard Edition (64-bit) on Windows NT 6.1 <X64> (Build 7601: Service Pack 1)

【问题讨论】:

标签: sql datetime time sql-insert


【解决方案1】:

根据 MSDN https://msdn.microsoft.com/en-CA/library/ms187819.aspx,[DateTime] 数据类型的准确性是“四舍五入到 0.000、0.003 或 0.007 秒的增量”

要解决您的问题,请使用DateTime2(3),如下所示:

CREATE TABLE #table
(
    DTstamp DATETIME2(3) NOT NULL
)
INSERT INTO #table VALUES ('1 apr 2016 15:01:02:129')
SELECT DTstamp FROM #table
DROP TABLE #table

【讨论】:

    猜你喜欢
    • 2015-09-16
    • 2022-11-27
    • 1970-01-01
    • 2013-10-31
    • 1970-01-01
    • 2016-10-31
    • 2017-05-10
    • 2020-08-03
    • 2016-01-27
    相关资源
    最近更新 更多