我想输入时间在12PM之后发生的任何日期,并将其第二天设置为8AM。
我知道如何使用来为日期添加时间或小时DATEADD
,但是不知道如何仅将其设置为特定时间的第二天。
尝试使用SQL Server / Transact-SQL。
我能想到的唯一方法是创建一个计算日期的函数,并DATEADD
根据输入将小时返回到小时,以使其达到8AM。
以下:
DECLARE @mydate DATETIME = '2015-03-07 16:59:59.997'
SELECT DATEADD(day, 1, DATEADD(day, DATEDIFF(day, 0, @mydate), '08:00:00'))
产生以下输出:
2015-03-08 08:00:00.000
如果您还想检查datetime值是否在12PM之后,则可以使用:
SELECT CASE
WHEN CAST(@mydate AS TIME) > CAST('12:00:00' AS TIME) THEN
DATEADD(day, 1, DATEADD(day, DATEDIFF(day, 0, @mydate), '08:00:00'))
ELSE
@mydate
END
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句