好记性不如烂笔头。

SQL关于DATETIME 、DATETIME2(0) 转换四舍五入的问题

--假如 @time='2018-09-29 09:46:51.923'
DECLARE @time DATETIME = GETDATE()

--使用以下转换,@time会变成2018-09-29 09:46:52,注意秒被四舍五入了
SELECT CAST(@time AS DATETIME2(0))

--使用下转换,@time会变成2018-09-29 09:46:51,秒没有被四舍五入
SELECT CONVERT(VARCHAR,@time,120)

--以上转换结果是VARCHAR格式,但如果想转成时间只到秒,又不四舍五入的话,使用以下转换
SELECT CAST(CONVERT(VARCHAR,@time,120) AS DATETIME2(0))