私は、日付が次のように varchar として保存される MySQL データベースを使用しています。
'2013-01-31'
列にcl_223
2013年のレコードのみを選択する必要があるため、次を試しました:
SELECT ..
FROM ....
Where cl_223 Like '2013'
しかし、それはうまくいかないようです。
助けてくれてありがとう!
%
ワイルドカードとして追加する必要があります:
SELECT ..
FROM ....
WHERE cl_223 LIKE '2013%'
datettime 値を varchar 列に格納すると、日時操作の一部の機能が複雑になります。ただし、もちろん、次のようなクエリを作成して値を選択できます
SELECT * FROM table_name WHERE cl_223 LIKE '2013%'
ただし、パフォーマンスの問題がない場合は、varchar 列を datetime 値に変換し、次のようにより強力な型付きクエリを記述できます。
SELECT * FROM table_name WHERE STR_TO_DATE(cl_223,'%Y-%m-%d2') BETWEEN '2013-01-01' AND '2013-12-31'
ただし、プロセスで日時として日時の値が必要な場合は、varchar 列ではなく日時列に格納することをお勧めします。
クエリは
SELECT ..
FROM ....
Where cl_223 Like '2013%'
ただし、より良い解決策は、日付をDATE
データ型として格納することです。その列の日付が常に現在の形式で使用される場合、変更は下位互換性があります。また、日付値の処理も簡単になります。