Sql-Server
如何將 1 毫秒添加到日期時間字元串?
基於一個選擇,我可以像這樣返回 x 行:
1 2019-07-23 10:14:04.000 1 2019-07-23 10:14:11.000 2 2019-07-23 10:45:32.000 1 2019-07-23 10:45:33.000
我們所有的毫秒都為 0。
有沒有辦法將 1 x 1 毫秒相加,所以選擇看起來像這樣:
1 2019-07-23 10:14:04.001 1 2019-07-23 10:14:11.002 2 2019-07-23 10:45:32.003 1 2019-07-23 10:45:33.004
我正在嘗試創建游標甚至更新但沒有成功。
這是獲得我想要的結果的查詢:
select top 10 ModifiedOn from [SCHEMA].[dbo].[TABLE] where FIELD between '2019-07-23 00:00' and '2019-07-23 23:59'
有 81k 個值。場是
DATETIME
。
Datetime
不精確到 1 毫秒的水平。datetime2
除非您更改為不同的數據類型(即),否則您所要求的內容是不可能的。重要報價:
精度四捨五入到 0.000、0.003 或 0.007 秒的增量
該
DateAdd
功能是您正在尋找的。用作
millisecond
函式的第一個參數,告訴它您正在添加毫秒。然後1
用作第二個參數,表示要添加的毫秒數。這是一個範例,將目前時間抓取到一個變數中,然後對其添加一毫秒並將結果保存為第二個變數,然後列印每個變數
Declare @RightNow as DateTime2 Declare @RightNowPlusAMillisecond as DateTime2 Select @RightNow = Getdate() Select @RightNowPlusAMillisecond = DateAdd(millisecond,1,@RightNow) Print @RightNow Print @RightNowPlusAMillisecond
結果:
2019-07-23 08:25:38.3500000 2019-07-23 08:25:38.3510000
筆記:
正如 Forrest 在另一個答案中指出的那樣,
datetime
數據類型不保證毫秒精度。它以 0.000、0.003 或 0.007 秒的增量四捨五入。如果您想要毫秒精度,請使用datetime2
.