Format tanggal MySQL DD / MM / YYYY pilih kueri?


150

Saya agak bingung bagaimana cara memesan berdasarkan format tanggal.

Untuk format YYYY-MM-DDAnda akan melakukan ini:...ORDER BY date DESC...

Bagaimana cara Anda memesan DD/MM/YYYY?

Ini tidak bekerja:

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

Jawaban:


159

Anda dapat menggunakan STR_TO_DATE()untuk mengonversi string Anda ke nilai tanggal MySQL dan ORDER BYhasilnya:

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

Namun, Anda sebaiknya mengonversi kolom ke DATEtipe data daripada menggunakan string.


194

Menebak Anda mungkin hanya ingin memformat tanggal keluaran? maka inilah yang Anda kejar

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

Atau apakah Anda benar-benar ingin mengurutkan berdasarkan Hari sebelum Bulan sebelum Tahun?


1
Saya ingin 14 tanggal / catatan terbaru :) Format dalam database adalah "DD / MM / YYYY"!
basickarl

Apakah tanggal dalam database merupakan tipe tanggal aktual, atau apakah itu tipe string?
penjebak

2
mysql> DESCRIBE Table;dan tempelkan output
trapper

DATE_FORMAT (tanggal, '% a') akan memberikan singkatan hari dalam seminggu. Saya menggunakan ini untuk membuat beberapa plot kotak dan semacamnya di RStudio.
pengguna208145



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

ATAU

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

OUTPUT adalah 10/05/2019 19:30



5

Jika jamnya penting, saya menggunakan str_to_date(date, '%d/%m/%Y %T' ), %Tmenunjukkan jam dalam format hh:mm:ss.


Ini tidak disebut sebagai jam. %Tmenunjukkan nilai dengan format waktu. Ngomong-ngomong, Anda mendapatkan suara positif saya.
Wolverine

4

ORDER BY tipe tanggal tidak bergantung pada format tanggal, format tanggal hanya untuk memperlihatkan, dalam database, mereka adalah data yang sama.


Format dapat digunakan untuk mengurutkan (jika seseorang benar-benar menginginkannya, tampak aneh bagi saya), tetapi pengurutan seperti itu tidak dapat didasarkan pada indeks, jadi [b] mahal [/ b], Hanya pengurutan pada kolom yang dirancang dengan baik yang dapat dijalankan dengan indeks ( cepat) dan dioptimalkan oleh server
Jacek Cz
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.