Формат дати MySQL DD / MM / РРРР виберіть запит?


140

Я трохи розгублений, як замовити формати дати.

Для формату YYYY-MM-DDви зробите це:...ORDER BY date DESC...

Як би ви замовили DD/MM/YYYY?

Це не працює:

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

Відповіді:


152

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

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

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


188

Здогадалися, що ви, мабуть, просто хочете відформатувати дату виходу? то це те, за чим ти йдеш

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

Або ви насправді хочете сортувати за днем ​​до місяця перед роком?


1
Мені б хотілося 14 останніх дат / записів :) Хоча формат у базі даних "DD / MM / РРРР", хоча!
K - Токсичність в SO зростає.

Чи дата в базі даних є фактичним типом дати чи це рядковий тип?
трапер

2
mysql> DESCRIBE Table;і вставити вихід
trapper

DATE_FORMAT (дата, '% a') надасть абревіатуру дня тижня. Я використовував це для виготовлення деяких боксерів і подібних у RStudio.
користувач208145



10
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



4

Якщо година важлива, я використовував str_to_date(date, '%d/%m/%Y %T' ), %Tпоказує годину у форматі hh:mm:ss.


Це не називається годиною. %Tпоказує значення з форматом часу. До речі, ви отримали мою позицію.
Росомаха

3

ЗАМОВЛЕННЯ ЗА типом дати не залежить від формату дати, формат дати призначений лише для показу, у базі даних вони є тими ж даними.


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