質問: `c`.`id`)) order by date_format(`u`.`created`,'%Y-%m-%d %H:%i:%s') desc; ``` これはなぜでしょうか。 --- 追記 mysql --version mysql Ver 15.1 Distrib 10.4.12-MariaDB, for debian-linux-gnu (x86_64) using readline 5.2 ORDERBYを指定しない場合は、DATETIMEの比較でレコードが取得できます。
回答: ~~DBの日付のデフォルト形式がXXXX-XX-XX XX:XX:XXではないからです。~~ ~~日付は下記のどちらかにするのが定番です。~~ ~~・使用する際に常に形式を指定する~~ ~~・そもそもyyyymmddhhmmssのような文字列で保存し、文字列比較でできるようにしておく~~ 6/21追記 上記回答は誤りだったため、訂正します。すいません。 mariadbのリファレンスを読む限り、上記形式自体は正当です。 原因は、以下になります。 mariadb 10.4.6では発生せず、10.4.13では発生するようです。 なお、cast(created as char)やcast(created as datetime)にするか、viewの内容の代わりにサブクエリにしても取得できます。 どこかのバージョンから、viewの挙動が変わったようです。