sql datetime如果在特定时间之间转换为特定日期

时间:2016-11-12 23:49:04

标签: sql-server datetime case iif

我有一串日期时间记录。我想创建一个case条件或if语句来读取datetime值并将其分配给特定的日期。

日间是下午2:45,直到第二天下午2:45。这个范围将被视为“第二天”

实施例。发布时间为3:42 PM 11/12/2016,因此会显示为11/13/2016。如果这篇文章是在2016年12月11日下午2:42制作的,那么这将是2016年12月12日。

到目前为止,由于时间范围的限制,不相信CONVERT(日期,'datetime')会起作用。

由于

2 个答案:

答案 0 :(得分:3)

使用DATEADD函数为日期添加时间,使其到达第二天。下午2:45你需要加9:15。

答案 1 :(得分:0)

想想我得到了...检查日期时间值是否高于2:45,如果是,则转换为日期并添加一天,否则转换为日期。

CASE
    WHEN    CAST (MAIN.TimeOfRftDecision AS Time) > '14:45:00' THEN DATEADD(dd,1,CONVERT (Date, MAIN.TimeOfRftDecision))
    ELSE    CONVERT (Date, MAIN.TimeOfRftDecision)
END AS 'DayOfRft'