date_format を使用した MySQL の日付比較
MySQL は、時系列の制約に基づいてレコードをフィルタリングできる日付比較機能を提供します。 date_format などの関数を使用して日付を使いやすい形式で表示することは多くの場合必要ですが、日付範囲をクエリするときに複雑になる可能性があります。
一般的なシナリオでは、date_format を使用して書式設定された日付を比較し、日付を次のように変換します。文字列。文字列を比較すると、アルファベット順により有効な日付が意図せず除外されてしまう可能性があります。たとえば、文字列「28-10-2012」と「02-11-2012」を昇順で比較すると、「2」が「02-11-2012」の後に誤って配置されます。日コンポーネントの は、他の日付文字列の '0' よりも数値的に大きいです。
この問題に対処し、正確な日付比較を保証するには、日付を日付として比較することが重要です。これは、DATETIME または DATE フィールドから日付コンポーネントを抽出し、結果の日付値を比較する date 関数を使用することで実現できます。
以下の改訂されたクエリは、date 関数を使用して日付を比較する方法を示しています。
select date_format(date(starttime),'%d-%m-%Y') from data where date(starttime) >= date '2012-11-02';
このクエリでは、date(starttime) 関数が starttime フィールドから日付コンポーネントを抽出し、結果の日付値が >= 演算子を使用して比較されます。これにより、「2012-11-02」以降の日付のみが取得されるようになります。
日付を日付として比較することで、文字列比較に関連するアルファベット順の制約を克服し、クエリの結果が確実に反映されるようにすることができます。意図した時系列基準。
以上がMySQL で日付を date_format と比較する場合、正確な結果を保証するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。