-3

2011年6月30日から2012年6月30日までの日付の1つのテーブルからレコードを取得する必要があります。問題は、テーブルには2011年のレコードが含まれているにもかかわらず、結果が2012年のレコードのみを表示することです。以下は私のコードです。

SELECT * FROM tbl_name where date between '06/30/2011' and '06/30/2012'
4

1 に答える 1

2

dateあなたはそれを使用するように変換する必要がありますSTR_TO_DATE、例えば

SELECT * 
FROM tbl_name 
where STR_TO_DATE(date, '%m/%d/%Y') between '2011-06-31' and '2012-06-31'

データベースに文字列として保存するのはよくありませんDates。検索が難しいので、日付に戻すためにいくつかの追加の関数が必要であり、インデックスを削除すると思います。

DateTime変更する時間または特権がある場合は、値を修正してデータ型に変更してください。

于 2013-01-22T13:17:45.703 に答える