一尘不染

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

sql

我有一个带有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)

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


阅读 129

收藏
2021-03-08

共1个答案

一尘不染

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

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

2021-03-08