2017-09-27 12 views
-1

mysqlを使用して5日前のレコードを選択したいのですが、問題は私の日付の列がvarcharで、次の形式であるということです。yyyy-mm- 00 AM/PM。mysqlを使って特定の日付のformateを持つ5日前のレコードを取得する

この日付形式をmysql日付に変換して5日後のレコードを選択するにはどうすればよいですか?

私の日付列名が 'DATE_TIME'

+1

日付をvarcharとして保存しないでください。日付をdatetimeとして保存する必要があります。それがそのデータ型が存在する理由です。 –

+0

[mysqlの日付に文字列を変換する方法は?](https://stackoverflow.com/questions/5201383/how-to-convert-a-string-to-date-in-mysql) –

+0

@SeanLangeあなたは正しいです、その非常に古いテーブル、その時点で私はmysqlのデフォルトの日付型について知らなかった – user3475530

答えて

0

これはa job for STR_TO_DATE()です。

これを試してください。

... WHERE DATE(STR_TO_DATE(date_time,'%Y-%m-%d %h:%i:%s %p')) = CURDATE() - INTERVAL 5 DAY 

'%Y-%m-%d %h:%i:%s %p'DATE_FORMAT() stringは、あなたのテキスト日付形式と一致します。

sargableではないため、多数の行を検索する必要がある場合、これは決して高速ではありません。インデックスを悪用することはできません。

+0

それは仲間を気に入って、それは私が欲しかったのとまったく同じです。 – user3475530

関連する問題