2017-02-18 9 views
2

私はmysqlデータベースから日付を照会しています。特定の日付と日付の間の日付のみを選択しようとすると、予想される結果が戻ってきません。日付が2つの日付の間にあるかどうかを確認する方法mysql?

マイクエリ:

select * from tbl_billing where date BETWEEN '09-02-2017' and '10-02-2017' 

マイ出力:

09-02-2017 
10-02-2017 
10-01-2017 
09-01-2017 
09-01-2017 

私の希望する結果:

09-02-2017 
10-02-2017 
+0

は、MySQLのテーブルに日付フィールドのあなたのタイプは何ですか? –

+1

'' dd-mm-yyyy''は有効なMySQL [日付リテラル](https://dev.mysql.com/doc/ja/date-and-time-literals.html)ではありません。 – eggyal

答えて

1

は、あなたが使用できる標準的なSQLの日付書式

select * from tbl_billing where date BETWEEN '2017-02-09' and '2017-02-10' 

またはstr_to_date

select * from tbl_billing where date BETWEEN str_to_date('09-02-2017', '%d-%m-%Y') 
      and str_to_date('10-02-2017', '%d-%m-%Y') 

を使用して適切に変換するだけでなく、あなたのdateがvarchar型であるならば、あなたもこの列を変換する必要があります

select * from tbl_billing where str_to_date(date,'%d-%m-%Y') BETWEEN str_to_date('09-02-2017', '%d-%m-%Y') 
      and str_to_date('10-02-2017', '%d-%m-%Y') 
+0

こんにちはローマンアドバイス私は問題が私の日付データ型はvarcharであり、私は多くのページで使用されているので、それを変更することはできませんので、データ型varcharを日付に変更することはできません。何か解決策があるなら、私にローマ人教えてください – phpguru

+1

@phpguruそれを変更してください。ページを変更します。それ以外の場合は '熟達者'! – Strawberry

+0

@phpguruまた、日付の列がvarcharである場合は、列も変換する必要があります..回答updated ..let私は – scaisEdge

関連する問題