2013-06-05 11 views
6

このフィールドには、DD/MM/YYYYという形式の日付が含まれていますが、このフィールドで結果DESCを注文する必要がありますが、VARCHARとして保存されますこれを変更してください。回避策はありますか?MySQL ORDER BY日付の書式でない日付フィールド

フィールドタイプを変更する方法は実際にはありません。私が既に知っているように、これを行うには悪い方法ではないと言ってください。私はそれが可能かどうかを知る必要があります。

ご協力いただきありがとうございます。

+3

http://stackoverflow.com/questions/3296725/ mysqlのparse-date-in-mysql –

答えて

15

あなたは、以下の方法により

を行うことができます
SELECT ... 
FROM ... 
ORDER BY STR_TO_DATE(yourDate,'%d-%m-%Y') DESC 
+0

OPの日付形式は '%d-%M-%Y'ではありません – Raptor

+0

小さいmが必要ですが、それ以外の場合は正しくなります。 %d /%m /%Y – Somk

+0

ありがとう:) :) –

0

使用このSTR_TO_DATEを使用

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

使用STR_TO_DATE() MySQLの機能:

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

追記:DATE_FORMATは日付を文字列に変換しながらSTR_TO_DATEは、文字列を日付に変換し