0

私は、日付が次のように varchar として保存される MySQL データベースを使用しています。

'2013-01-31'列にcl_223

2013年のレコードのみを選択する必要があるため、次を試しました:

SELECT ..
FROM ....

Where cl_223 Like '2013'   

しかし、それはうまくいかないようです。

助けてくれてありがとう!

4

3 に答える 3

3

%ワイルドカードとして追加する必要があります:

SELECT ..
FROM ....

WHERE cl_223 LIKE '2013%'   
于 2013-01-14T17:06:47.147 に答える
2

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 列ではなく日時列に格納することをお勧めします。

于 2013-01-14T17:14:11.657 に答える
1

クエリは

SELECT ..
FROM ....

Where cl_223 Like '2013%'

ただし、より良い解決策は、日付をDATEデータ型として格納することです。その列の日付が常に現在の形式で使用される場合、変更は下位互換性があります。また、日付値の処理も簡単になります。

于 2013-01-14T17:08:19.220 に答える