【发布时间】:2020-07-01 20:59:20
【问题描述】:
代码:
DECLARE @var DATETIMEOFFSET(7) ;
-- Rounding up
SET @var = '2020-03-20 12:00:29.9999999 -08:00' ;
SELECT DATEADD ( ms, 500 - DATEPART ( ms, DATEADD ( MILLISECOND, 500, @var )), @var ) ;
-- Actual: 2020-03-20 12:00:30.0009999 -08:00
-- Expected: 2020-03-20 12:00:30.0000000 -08:00 -- Notice that precision is rounded up to '0000000'
-- Rounding down
SET @var = '2020-03-20 12:00:30.0000001 -08:00' ;
SELECT DATEADD ( ms, 500 - DATEPART ( ms, DATEADD ( MILLISECOND, 500, @var )), @var ) ;
-- Actual: 2020-03-20 12:00:30.0000001 -08:00
-- Expected: 2020-03-20 12:00:30.0000000 -08:00 -- Notice that precision is rounded down to '0000000'
GO
目标: 我想根据毫秒 = 5###### 四舍五入到最接近的秒数。到目前为止,我的查询确实正确地将秒数四舍五入,只是没有将精度四舍五入到我想要的 0000000。
【问题讨论】:
标签: sql-server tsql date datetime sql-server-2016