我在SQL Server中有一个DateTime变量。我有下面的代码检查周末,然后减去使星期五成为星期五的天数。现在我也想将这个新的日期时间设置为星期五的下午5点。有人可以告诉我如何实现这一目标。
if(DATENAME(DW, @EndDate) = 'Sunday')
Begin
Set @EndDate = (SELECT DATEADD(DAY, -2, @EndDate))
End
if(DATENAME(DW, @EndDate) = 'Saturday')
Begin
Set @EndDate = (SELECT DATEADD(DAY, -1, @EndDate))
End
End
谢谢
答案 0 :(得分:2)
您可以添加17小时:
Set @EndDate = DATEADD(HOUR, 17, DATEADD(DAY, -1, @EndDate))
我不知道您为什么使用子查询来表达这种逻辑。没必要。
如果您的数据已经具有时间成分,则先强制转换为date
以摆脱时间成分,然后再转换为datetime
:
Set @EndDate = DATEADD(HOUR, 17, DATEADD(DAY, -1, CONVERT(datetime, CONVERT(DATE, @EndDate))))
答案 1 :(得分:0)
选择演员表(CONVERT(varchar(12),GETDATE())+ '17:00'作为日期时间