2013-06-05 38 views
6

Bu biçim GG/AA/YYYY tarihleri ​​içeren bir alan var ve bu alan tarafından sonuçları DESC sipariş etmek gerekir, ancak bir VARCHAR olarak kaydedilir ve yapamam bunu değiştir. Bir çözüm var mı?MySQL SİPARİŞ

gerçekten beni bu zaten bildiğimiz gibi bunu yapmak için kötü bir yol olduğunu söylemek bu nedenle lütfen alan türünü değiştirmek için bir yolu yoktur. Sadece mümkün olup olmadığını bilmem gerek. Önceden herhangi bir yardım ve tavsiye için

teşekkürler.

+3

http://stackoverflow.com/questions/3296725/ ayrıştırmak-tarihi-in-mysql @PSR birbirinin aynı –

cevap

15

Aşağıdaki arada yapabiliriz,

SELECT ... 
FROM ... 
ORDER BY STR_TO_DATE(yourDate,'%d-%m-%Y') DESC 
+0

OP tarih formatı '% d-% M-% Y' – Raptor

+0

değil, küçük bir m gerekli ancak doğru. % d /% m /% Y – Somk

+0

Yup teşekkürler :) :) –

0

kullanımı bu

STR_TO_DATE

SELECT * FROM table_name ORDER BY STR_TO_DATE(date_field, '%d-%M-%Y') DESC 
0
ORDER BY CONCAT(SUBSTR(field, 7, 4), SUBSTR(field, 4, 2), SUBSTR(field, 1, 2)) DESC 
0

Kullanım STR_TO_DATE() MySQL fonksiyonu:

SELECT * FROM your_table ORDER BY STR_TO_DATE(your_date_column, '%d/%M/%Y') DESC; 

sidenote: DATE_FORMAT String tarihi dönüştürür ikenSTR_TO_DATE Tarihi Dize dönüştürür