编写此查询以将日期添加到日期的最简洁方法

Bra*_*ore 2 sql sql-server

我有一个DateTime字段.我想忽略该字段上的时间并添加指定的小时.

这是我正在寻找的一个例子,其中@h可以是0到23之间的任何值.(为了简单起见,我使用getdate()而不是我的表中的字段).

declare @h int = 8
select cast(cast(cast(getdate() as date) as nvarchar(50)) + ' ' + CAST(@h as nvarchar(2)) + ':00' as datetime)
Run Code Online (Sandbox Code Playgroud)

我怎么能更简单地写这个?请记住,我对可读性/可维护性比对速度更感兴趣.

JNK*_*JNK 6

SELECT DATEADD(hour, 1, CAST((CAST (GETDATE() as DATE)) as datetime))

您可以1根据需要在此处放置参数.