Формат даты MySQL ДД / ММ / ГГГГ выбрать запрос?


151

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

Для формата YYYY-MM-DDвы должны сделать это:...ORDER BY date DESC...

Как бы вы сделали заказ DD/MM/YYYY?

Это не работает:

SELECT * FROM $table ORDER BY DATE_FORMAT(Date, '%Y%m%d') DESC LIMIT 14

Ответы:


160

Вы можете использовать STR_TO_DATE()для преобразования ваших строк в значения даты MySQL и ORDER BYрезультат:

ORDER BY STR_TO_DATE(datestring, '%d/%m/%Y')

Однако было бы разумно преобразовать столбец в DATEтип данных вместо использования строк.


194

Думаете, вы просто хотите отформатировать дату вывода? тогда это то, что вам нужно

SELECT *, DATE_FORMAT(date,'%d/%m/%Y') AS niceDate 
FROM table 
ORDER BY date DESC 
LIMIT 0,14

Или вы действительно хотите отсортировать по дням перед месяцем перед годом?


1
Я бы хотел 14 последних дат / записей :) Формат в базе данных - «ДД / ММ / ГГГГ»!
basickarl

Является ли дата в базе данных фактическим типом даты или строковым типом?
траппер

2
mysql> DESCRIBE Table;и вставляем вывод
траппер

DATE_FORMAT (date, '% a') даст аббревиатуру дня недели. Я использовал это для создания коробочных диаграмм и тому подобного в RStudio.
user208145



13
SELECT DATE_FORMAT(COLUMN_NAME, "%d/%m/%Y %h:%i %p");

ИЛИ

SELECT DATE_FORMAT("2019-05-10 19:30:10", "%d/%m/%Y %h:%i %p");

ВЫХОД: 05.10.2019 19:30.



5

Если час важен, я использовал str_to_date(date, '%d/%m/%Y %T' ), то %Tпоказывает час в формате hh:mm:ss.


Это не называется часом. %Tпоказывает значение в формате времени. Кстати, ты получил мой голос.
Wolverine

4

ORDER BY тип даты не зависит от формата даты, формат даты предназначен только для отображения в базе данных, что это одни и те же данные.


Формат можно использовать для сортировки (если кто-то действительно хочет, это кажется мне странным), но такая сортировка не может быть основана на индексе, поэтому [b] стоит дорого [/ b]. Только сортировка по хорошо спроектированным столбцам может выполняться с индексом ( быстро) и оптимизирован сервером
Jacek Cz
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.