将带毫秒的日期时间插入SQL Server表问题
我发现了一些我认为与SQL中的时间分辨率有关的东西。 下面是我使用的一个示例:将带毫秒的日期时间插入SQL Server表问题,sql,datetime,time,sql-insert,Sql,Datetime,Time,Sql Insert,我发现了一些我认为与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.00
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)
Microsoft SQL Server 2012(SP3)(KB3072779)-11.0.6020.0(X64)
2015年10月20日15:36:27
版权所有(c)微软公司
Windows NT 6.1上的标准版(64位)(版本7601:Service Pack 1)
根据MSDN,[DateTime]数据类型的准确性是“四舍五入到.000、.003或.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
可能重复的