SQL Server选择时间戳,相同的值,不同的结果

时间:2016-01-28 18:18:14

标签: sql-server tsql

我在互联网上发现了这个难题,我不知道问题出在哪里。 以下查询:

SELECT
CAST(‘2015-01-01 14:48:34.69’ AS DATETIME) FirstVal,
CAST(‘2015-01-01 14:48:34:69’ AS DATETIME) SecondVal

返回两个不同的结果,为什么会这样?

QueryResults

2 个答案:

答案 0 :(得分:3)

仔细查看选择,因为它们不同。第一个中的最终分隔符是a。在第二个中它是:。

根据BOL,第一种格式是正确的。 :被解释为Nano秒?而不是几分之一秒,然后转换为一秒的一小部分,这就是第二个选择不同的原因。 https://msdn.microsoft.com/en-us/library/ms187819.aspx

答案 1 :(得分:1)

这些是不同的日期格式,FirstVal有一个点.69,SecondVal有:69

.69表示0.69秒,等于690毫秒。 :69 menas 69 ms。

https://msdn.microsoft.com/en-us/library/ms187928.aspx