MySQL日付形式DD / MM / YYYY選択クエリ?


139

日付形式で注文する方法について少し混乱しています。

フォーマットについて 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 / YYYY"です!
K-SOの毒性が高まっています。

データベースの日付は実際の日付タイプですか、それとも文字列タイプですか?
トラッパー

2
mysql> DESCRIBE Table;出力を貼り付けます
トラッパー

DATE_FORMAT(date、 '%a')は、曜日の省略形を示します。これを使用して、RStudioでいくつかの箱ひげ図などを作成しました。
user208145



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");

出力は10/05/2019 07:30 PMです



4

時間が重要な場合は、私が使用しstr_to_date(date, '%d/%m/%Y %T' )%Tショー形式で時間をhh:mm:ss


時間とは呼ばれません。%T時間形式で値を示します。ちなみに、あなたは私の賛成票を得ました。
ウルヴァリン

3

ORDER BY日付タイプは日付形式に依存しません。日付形式は、データベース内で同じデータであることを示すためだけのものです。


フォーマットはソートに使用できますが(誰かが本当に望んでいる場合、私には奇妙に思えます)、そのようなソートはインデックスに基づくことができないため、[b]はコストがかかります[/ b]。高速)、サーバーによって最適化
Jacek Cz
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.