在SQL Server中更新日期时间的时间部分

时间:2019-03-18 21:24:40

标签: sql sql-server-2008

我在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

谢谢

2 个答案:

答案 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'作为日期时间