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
basickarl.dll
sumber

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.

telur
sumber
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?

penjebak
sumber
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
41
SELECT DATE_FORMAT(somedate, "%d/%m/%Y") AS formatted_date
..........
ORDER BY formatted_date DESC
John Conde
sumber
3
Apakah hanya saya, atau %ltidak berhasil? Itu memberi 12untuk setiap bulan dan saya harus beralih ke %m.
beroe
1
% l untuk jam dev.mysql.com/doc/refman/5.5/en/… @beroe
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

Mani
sumber
5

untuk kasus saya ini berhasil

str_to_date(date, '%e/%m/%Y' )
Kishore Sahoo
sumber
5

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

Davi RIbeiro
sumber
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.

xdazz
sumber
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