Как выполнить сортировку дат используя только ORDER BY в следующем порядке:
На данный момент SQL запрос выглядит так:
SELECT * FROM table
ORDER BY
CASE WHEN TIMESTAMP(`time`) > TIMESTAMP(CURDATE()) THEN 1 ELSE 0 END DESC,
CASE WHEN TIMESTAMP(`time`) = TIMESTAMP(CURDATE()) THEN 1 ELSE 0 END DESC,
CASE WHEN TIMESTAMP(`time`) < TIMESTAMP(CURDATE()) THEN 0 ELSE 1 END DESC, time ASC
Но в прошедших датах порядок получается от самой дальней до самой ближней даты
Навскидку
ORDER BY SIGN(TIMESTAMPDIFF(day, TIMESTAMP(`time`), TIMESTAMP(CURDATE())))
,ABS(TIMESTAMPDIFF(day, TIMESTAMP(`time`), TIMESTAMP(CURDATE())))
time - DATETIME – Strange Tin
39 секунд назад
Тогда убрать преобразование в timestamp и использовать DATEDIFF().
fiddle
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
У меня есть таблица, в которой храниться first_id и second_id, это айди пользователей которые между собой дружат, и мне нужно для пользователя по определенному...
столкнулся с проблемой при переходе MYSQL 5,6 на 5,7 выборка выбирает не корректно
Гружу динамические стили через настройки wordpress, код вывода стилей выглядит так