2016-11-12 72 views
0

我有一个日期时间记录的字符串。我想提出一个案例条件或者如果语句读取日期时间值并将其分配给特定日期。SQL日期时间转换为特定日期,如果在某些时间

日期范围是下午2:45到下午2:45。此范围将被视为'第二天'

Ex。发布时间为3:42 PM 11/12/2016,因此这将读作11/13/2016。如果这篇文章是在2016年12月12日下午2点42分完成的,那么这将会是11/12/2016。

到目前为止,不相信CONVERT(date,'datetime')将因时间范围约束而工作。

感谢

回答

3

使用DATEADD函数中添加时间日期因此它的第二天。 2:45 PM你需要添加9:15。

+0

2:45标准是固定的,但日期时间值可以在一天中的任何时间和任何一天。我不明白这是如何工作的。不能在9:15等固定值。 – Nicho247

+0

@ Nicho247它在白天的任何时间都可以正常工作。 –

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'