在T-SQL中将日期时间截断为秒(删除毫秒)

Kyl*_*ndt 38 t-sql datetime

缩短包含毫秒的日期时间只有第二个的最佳方法是什么?

例如2012-01-25 17:24:05.784,以2012-01-25 17:24:05

Mik*_*son 52

这将截断毫秒.

declare @X datetime
set @X = '2012-01-25 17:24:05.784'
select convert(datetime, convert(char(19), @X, 126))
Run Code Online (Sandbox Code Playgroud)

要么

select dateadd(millisecond, -datepart(millisecond, @X), @X)
Run Code Online (Sandbox Code Playgroud)

CAST和CONVERT
DATEADD
DATEPART

  • 第二种解决方案是减去毫秒,非常简单。 (2认同)

gbn*_*gbn 24

最快的,也是语言安全确定性

DATEADD(second, DATEDIFF(second, '20000101', getdate()), '20000101')
Run Code Online (Sandbox Code Playgroud)


小智 8

convert(datetime, convert(varchar, @datetime_var, 120), 120)
Run Code Online (Sandbox Code Playgroud)


小智 8

所以,现在最简单的方法是:

select convert(datetime2(0),getdate())