SQL-выражение для столбца даты для классификации временных отметок в категории - PullRequest
0 голосов
/ 02 апреля 2019

Пытался выяснить, каким образом я могу использовать выражение для случая, которое дает мне двоеточие, которое классифицирует время даты в категорию времени приема пищи, как показано ниже,

  (CASE
      WHEN hour(order_time_local) < 6 THEN 'late night'
      WHEN hour(order_time_local) >=6 AND hour(order_time_local) < 11 THEN 'breakfast'
      WHEN hour(order_time_local) >=11 AND hour(order_time_local) < 14 THEN 'lunch'
      WHEN hour(order_time_local) >=14 AND hour(order_time_local) < 17 THEN 'mid-day'
      WHEN hour(order_time_local) >=17 AND hour(order_time_local) < 22 THEN  'dinner'
ELSE 'late night'
    END) as mealtime

но я использовал это для столбца, у которого только что было время, как бы я использовал это, если бы в столбце также был день? Как ниже

    CREATED_DATE
2018-05-18 18:12:16.289
2018-03-29 17:05:46.489
2019-03-28 16:05:19.858

Ответы [ 2 ]

0 голосов
/ 02 апреля 2019

Если вы используете сервер SQL, попробуйте это.

 (CASE
      WHEN  DATEPART(HOUR,order_time_local) < 6 THEN 'late night'
      WHEN  DATEPART(HOUR,order_time_local) >=6 AND  DATEPART(HOUR,order_time_local) < 11 THEN 'breakfast'
      WHEN  DATEPART(HOUR,order_time_local) >=11 AND DATEPART(HOUR,order_time_local) < 14 THEN 'lunch'
      WHEN  DATEPART(HOUR,order_time_local) >=14 AND DATEPART(HOUR,order_time_local) < 17 THEN 'mid-day'
      WHEN  DATEPART(HOUR,order_time_local) >=17 AND DATEPART(HOUR,order_time_local) < 22 THEN  'dinner'
ELSE 'late night'                                   
    END) as mealtime
0 голосов
/ 02 апреля 2019

Один из вариантов: вы можете использовать метку времени в качестве даты и использовать ее в hour function

hour(cast(CREATED_DATE as date))

Следующая ссылка даст вам дальнейшее представление.

https://prestosql.io/docs/current/functions/datetime.html

...