我试图接受12点之后的时间,并将其设置为第二天的上午8点。
我知道如何使用DATEADD
为日期添加时间或小时数,但不知道如何在特定时间将其设置为第二天。
尝试使用SQL Server / Transact-SQL。
我能想到这样做的唯一方法是创建一个评估日期的函数,并根据输入将DATEADD
返回到小时,以使其达到上午8点。
答案 0 :(得分:1)
以下内容:
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
如果您还想检查日期时间值是否在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