如何仅使用日期部分加上SQL中的硬编码时间将datetime列转换为另一列

时间:2018-04-26 16:35:53

标签: sql datetime valueconverter

如何将日期时间列(但只是日期部分,而不是时间部分)与硬编码时间戳(如06:00:00 AM)结合使用?我想使用它的日期部分+ 6AM时间戳转换当前日期时间字段,然后在案例场景中使用。

例如:

case 
   when event_datetime > datetimefield+06:00:00 AM 
      then 'late'

2 个答案:

答案 0 :(得分:0)

在CASE中将两者都转换为DATE。将它们转换为DATE将丢弃时间信息。如果您再次使用这些字段,我建议您将它们转换为DATE,存储变量或临时表然后使用它们。

CASE WHEN CONVERT(DATE, EVENTDATETIME) > CONVERT(DATE,DateTimefield) 
    THEN 'Late'

答案 1 :(得分:0)

我最终使用了DATEADD:

当event_datetime>时的情况DATEADD(HOUR,6,datetime字段)那么' event_late'

例如,event_datetime< = DATEADD(HOUR,6,datetime字段)那么' event_ontime'

ELSE' event_unkwn'

END AS event_outcome

这有助于我将日期时间字段转换为日期+ 06:00 AM(作为日期格式),以便与event_datetime进行比较。