Как преобразовать столбец datetime в другой столбец, используя только часть даты плюс жестко закодированное время в SQL - PullRequest
0 голосов
/ 26 апреля 2018

Как можно объединить столбец даты и времени (но только часть даты, а не часть времени) с жестко заданной отметкой времени, например, 06:00:00 AM? Я хочу преобразовать текущее поле даты и времени, используя его часть даты + отметку времени 6 утра, чтобы затем использовать его в сценарии случая.

Например:

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

Ответы [ 2 ]

0 голосов
/ 29 апреля 2018

Я использовал DATEADD:

CASE WHEN event_datetime> DATEADD (HOUR, 6, поле даты и времени) THEN 'event_late'

CASE WHEN event_datetime <= DATEADD (HOUR, 6, поле даты и времени) THEN 'event_ontime' </p>

ELSE 'event_unkwn'

END AS event_outcome

Это помогло мне преобразовать поле даты и времени в дату + 06: 00 AM (в формате даты) для сравнения с event_datetime.

0 голосов
/ 26 апреля 2018

Конвертировать оба в ДАТУ, находясь в случае. Преобразование их в DATE приведет к потере информации о времени. Если вы снова используете эти поля, я бы порекомендовал вам преобразовать их оба в DATE, сохранить их переменные или временную таблицу, а затем использовать их.

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