Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/73.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 Server表问题_Sql_Datetime_Time_Sql Insert - Fatal编程技术网

将带毫秒的日期时间插入SQL Server表问题

将带毫秒的日期时间插入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

我发现了一些我认为与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)
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
可能重复的