日付フォーマットによるレコードのフィルタ方法について少し混乱します。DD-MM-YYYY日付形式を使用したMySQLフィルタレコードセット
私は、日付表の日付(yyyy-mm-dd)データ型の日付型を持っています。
例:
date
-----
2017-01-29
2017-01-30
私は形式(DD-MM-YYYY)を変更したいんです。このコードを使用しています
SELECT
DATE_FORMAT(`date`, '%d-%m-%Y') as date
FROM
dim_date;
date
-----
29-01-2017
30-01-2017
(dd-mm-yyyy)形式でレコードをフィルタリングします。だから私はこのコードを試しました。
SELECT
DATE_FORMAT(`date`, '%d-%m-%Y') date
FROM
dim_date
WHERE DATE_FORMAT(`date`, '%d-%m-%Y') BETWEEN '20-04-2015' AND '06-09-2017';
結果 何も
しかし、私は元の形式(YYYY-MM-DD)でフィルタリングしようとした場合それは動作します。
SELECT DATE_FORMAT(`date`, '%d-%m-%Y') date
FROM dim_date
WHERE DATE_FORMAT(`date`, '%Y-%m-%d') BETWEEN '2015-04-20' AND '2017-01-07';
なぜこのようなMysqlの動作が異常ですか?私はここに何かを逃していますか
私もこの形式DATE_FORMAT(
日付, '%d-%c-%Y')
、DATE_FORMAT(
日付, '%d-%l-%Y')
& DATE_FORMAT(
日, '%e-%l-%Y')
ない幸せな顔をしてみました、私は知らせてください。クエリと
おかげ
マックス
..です。 。より良く説明してください。 – scaisEdge
'Date_format'はあなたに文字列を与えます。値を文字列として比較すると、 '> = 2'と' <= 0'(2と0の間には何を探しているか)の文字はありません。なぜそれをそのように使いたいのですか?あなたは入力を有効な日付に変換し、有効な日付を比較することができます。また、インデックスを使用することもできます。そして、うまくいきたいと思うようにフィルタリングします。 – Solarflare
@scaisEdgeクエリを更新しました。今すぐご確認ください。申し訳ありませんが、私は現在の日付形式と混同しています。 – MAX