Сортировка поля varchar, содержащего время в числовом виде

Я использую поле varchar для хранения записи времени (формат: 00:00). Как мне отсортировать результаты в этом поле, чтобы, например, 08:00 приходилось раньше 10:00? Спасибо за вашу поддержку.

Это будет полезно -> stackoverflow.com/questions/4686849/…

Kasun Gamage 09.07.2018 11:33
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
В последние годы архитектура микросервисов приобрела популярность как способ построения масштабируемых и гибких приложений. Laravel , популярный PHP...
Как построить CRUD-приложение в Laravel
Как построить CRUD-приложение в Laravel
Laravel - это популярный PHP-фреймворк, который позволяет быстро и легко создавать веб-приложения. Одной из наиболее распространенных задач в...
Освоение PHP и управление базами данных: Создание собственной СУБД - часть II
Освоение PHP и управление базами данных: Создание собственной СУБД - часть II
В предыдущем посте мы создали функциональность вставки и чтения для нашей динамической СУБД. В этом посте мы собираемся реализовать функции обновления...
Документирование API с помощью Swagger на Springboot
Документирование API с помощью Swagger на Springboot
В предыдущей статье мы уже узнали, как создать Rest API с помощью Springboot и MySql .
Роли и разрешения пользователей без пакета Laravel 9
Роли и разрешения пользователей без пакета Laravel 9
Этот пост изначально был опубликован на techsolutionstuff.com .
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
В предыдущей статье мы завершили установку базы данных, для тех, кто не знает.
0
1
37
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Используйте функцию TIME_FORMAT в вашем предложении ORDER BY

предполагая, что ваш столбец называется thetime и всегда выражается в 24-часовом формате hours:minutes (23:43)

ORDER BY TIME_FORMAT(thetime, '%H:%i');  
Ответ принят как подходящий

В идеале вы должны хранить данные как TIME, но вы всегда можете CASTлитералы даты и времени по запросу:

ORDER BY CAST(thetime AS TIME)

Спасибо. Это работает, как и ORDER BY ABS (время). (кстати: я не голосую, потому что моя репутация мне все равно не позволяет)

Durian Nangka 09.07.2018 21:59

У тебя нет проблем. '08:00' меньше, чем '10:00'.

У вас нет проблемы, потому что вы дополнили строку нулями. Это работает до '99:59'. Если вам нужны трехзначные часы, то вам нужно сохранить добавку 0 для часа: '008:00'' and'010: 00 ''.

Конечно, вы также можете использовать тип данных TIME. В общем, это имеет смысл, но он ограничен в своем диапазоне, и в нем хранятся субминутные части на время (поэтому при некоторых обстоятельствах он может не идеально подходить для ваших нужд).

Другие вопросы по теме