将特定时间添加到日期值

时间:2010-10-01 13:37:42

标签: sql-server tsql datetime date

我有一个存储过程,它接收如下的日期值:

@AsOf date

在查询中,我使用此日期过滤日期时间字段。我需要将传入的日期转换为日期时间字段,并将时间部分设置为 09:00:00 PM ,以便我可以添加在WHERE子句中过滤如下:

(DateCreated < @TimeAsOfNinePM)

我知道这很容易,但此刻它正在逃避我。我正在使用SQL Server 2008。

1 个答案:

答案 0 :(得分:4)

试试这个:

DECLARE @TimeAsOfNinePM datetime 
DECLARE @AsOf date
SET @AsOf = '2010-10-01'
SET @TimeAsOfNinePM = dateadd(hh,21, cast(@AsOf as datetime)) 

PRINT @TimeAsOfNinePM

技巧是您需要将date数据类型转换为datetime数据类型以向其添加小时数。