2016-10-09 10 views
0

私はCSVファイルから 'LOAD DATA LOCAL INFILE'を介してデータを読み込み、それをMysqlテーブル。mysqlは 'yy/dd/MM'と 'yy/dd/MM'の間の日付を選択します

テーブルの日付の列は文字列です。私の日付形式がある場合

以下のクエリが動作していない'YY/DD/MM'が、それだけで2つのレコード

select column1, column2 from myTable where date between '16/08/15' and '16/08/20'; 

を返し、私はこの実行した場合:

select column1, column2 from myTable where date > '16/08/15'; 

すべてのレコードを返します。

開始日と終了日を指定できるように最初のクエリを実行する方法はありますか?

+0

ここで、date> = '16/08/15 'とdate <= '16/08/20'; 'を使用してみてください。 – Yazan

+0

文字列から日付までの日付列の型を変更する –

答えて

0

日付を「yyyy-mm-dd」形式にしてからクエリ内で使用すると、より簡単になります。代わりに、yyは私のSQLを格納するので、日付文字列でYYYYとして渡ししようとして、今年渡すの

0

は毎年順番にwhere句で2桁の年を与え、4桁の一つであるformat.Sinceにさかのぼりその年よりも大きなすべてのレコードを引き出すことは、実際にすべてのレコードを引き出すことになります。

0

あなたはあなたの日付列がDATEではなく "String"型であると言うので、あなたのクエリではmysqlはbetween関数を日付ではなく、文字列で操作しています。 between関数を適用する前に、文字列の日付を実際の日付にキャストする必要があります。例えば、

関連する問題