日付形式で注文する方法について少し混乱しています。
フォーマットのYYYY-MM-DD
場合、これを行います。...ORDER BY date DESC...
どのように注文しDD/MM/YYYY
ますか?
これは機能していません:
SELECT * FROM $table ORDER BY DATE_FORMAT(Date, '%Y%m%d') DESC LIMIT 14
日付形式で注文する方法について少し混乱しています。
フォーマットのYYYY-MM-DD
場合、これを行います。...ORDER BY date DESC...
どのように注文しDD/MM/YYYY
ますか?
これは機能していません:
SELECT * FROM $table ORDER BY DATE_FORMAT(Date, '%Y%m%d') DESC LIMIT 14
おそらく出力日をフォーマットしたいだけだと思いますか?その後、これはあなたが求めているものです
SELECT *, DATE_FORMAT(date,'%d/%m/%Y') AS niceDate
FROM table
ORDER BY date DESC
LIMIT 0,14
それとも、実際に前月の前日で並べ替えたいですか?
STR_TO_DATE()
文字列をMySQLの日付値とORDER BY
結果に変換するために使用できます。
ORDER BY STR_TO_DATE(datestring, '%d/%m/%Y')
DATE
ただし、文字列を使用する代わりに、列をデータ型に変換することをお勧めします。
SELECT DATE_FORMAT(somedate, "%d/%m/%Y") AS formatted_date
..........
ORDER BY formatted_date DESC
使用する:
SELECT DATE_FORMAT(NAME_COLUMN, "%d/%l/%Y") AS 'NAME'
SELECT DATE_FORMAT(NAME_COLUMN, "%d/%l/%Y %H:%i:%s") AS 'NAME'
参照:https ://dev.mysql.com/doc/refman/5.7/en/date-and-time-functions.html
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");
出力は2019年10月5日午後7時30分です
私の場合、これはうまくいきました
str_to_date(date, '%e/%m/%Y' )
時間が重要な場合は、を使用str_to_date(date, '%d/%m/%Y %T' )
しました。%T
は、の形式で時間を示していますhh:mm:ss
。
ORDER BYの日付タイプは、日付形式に依存しません。日付形式は、データベース内で同じデータであることを示すためだけのものです。