Выбор часа из текстового столбца - PullRequest
2 голосов
/ 16 мая 2019

У меня есть столбец с указанием даты и времени, например: 6/11/10 21:19. Столбец передается как текстовый тип данных. Я ищу, чтобы выбрать только часы из каждой строки в этом столбце в MySQL

Я пытался преобразовать каждую строку в формат даты и времени, но он не работает.

Код, который я пробовал:

select DATEPART('h', convert(datetime, convert(char(30), order_placer_placed_time)))

Я где-то получаю синтаксическую ошибку, но все равно чувствую, что мой код неверен. Оператор выбора должен возвращать значение 21.

Ответы [ 2 ]

1 голос
/ 16 мая 2019

Вы можете попробовать ниже - используя str_to_date() и hour()

DEMO

select hour(str_to_Date('6/11/10 21:19','%m/%d/%Y %H:%i'))

select hour(str_to_Date(order_placer_placed_time,'%m/%d/%Y %H:%i'))
0 голосов
/ 16 мая 2019

Использование STR_TO_DATE, как предлагает @ fa06, вероятно, лучший путь.Если по какой-то причине вы не можете всегда анализировать строки даты, то мы можем попробовать использовать REGEXP_SUBSTR:

SELECT REGEXP_REPLACE('6/11/10 21:19', '.* ([0-9]+):.*', '$1') AS hour
FROM yourTable;

Демо

Двигаясь вперед, вы всегда должны стараться сохранять даты и метки времени в надлежащих столбцах даты, даты и времени.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...