そのため、PHP アプリを壊さずに変更できない大きなテーブルがあります。ばかげて(はい、私は知っています)、開始日と終了日を VARCHAR として作成し、データを「03/04/2013」として保存しました。
ここで、現在「アクティブ」な行を検索して、今日より前の開始日と今日より後の終了日を持つ行を検索できるようにする必要があります。
これは SQL クエリで可能ですか?
そのため、PHP アプリを壊さずに変更できない大きなテーブルがあります。ばかげて(はい、私は知っています)、開始日と終了日を VARCHAR として作成し、データを「03/04/2013」として保存しました。
ここで、現在「アクティブ」な行を検索して、今日より前の開始日と今日より後の終了日を持つ行を検索できるようにする必要があります。
これは SQL クエリで可能ですか?
はい、できます。
このようなことを試してください:-
select date_format(str_to_date('03/04/2013', '%d/%m/%Y'), '%Y%m');
またはこれかもしれません:-( 03 と 04 と混同しているため、月と日の小さな変更のみ)
select date_format(str_to_date('03/04/2013', '%m/%d/%Y'), '%Y%m');
または、次のように列を日付に戻すこともできます。
UPDATE `table`
SET `column` = str_to_date( `column`, '%d-%m-%Y' );
次のように使用STR_TO_DATE
します。
WHERE STR_TO_DATE(start, '%d/%m/%Y') < DATE(NOW())
AND STR_TO_DATE(end, '%d/%m/%Y') > DATE_ADD(DATE(NOW()), INTERVAL 1 DAY)