我有一个存储过程,它接收如下的日期值:
@AsOf date
在查询中,我使用此日期过滤日期时间字段。我需要将传入的日期转换为日期时间字段,并将时间部分设置为 09:00:00 PM ,以便我可以添加在WHERE子句中过滤如下:
(DateCreated < @TimeAsOfNinePM)
我知道这很容易,但此刻它正在逃避我。我正在使用SQL Server 2008。
答案 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
数据类型以向其添加小时数。