MySQL の日付と DATETIME の比較
日付に似た文字列を比較すると、DATETIME として保存されたフィールドを処理するときに問題が発生します。 startTime が DATETIME フィールドであるデータベース テーブルのカレンダーを考えてみましょう。 「2010-04-29」などの日付文字列に基づいて行を選択するには、DATETIME 値をそれに応じて一致させるための慎重な処理が必要です。
解決策:
実現するには目的の比較を行うには、DATE() 関数を使用します。
SELECT * FROM `calendar` WHERE DATE(startTime) = '2010-04-29'
DATE() 関数は以下を抽出します。 DATETIME 値から日付コンポーネントを取り除き、時間情報を効果的に削除します。これにより、定義した日付文字列 (「2010-04-29」) を startTime DATETIME フィールドから抽出した日付と直接比較できるようになります。
パフォーマンスの最適化:
大規模なテーブルの場合、DATE() 関数は他のアプローチよりも効率的です。たとえば、STRCMP を使用した SALIL ソリューションは 200 万行のテーブルに対して 4.48 秒かかりましたが、DATE() アプローチはわずか 2.25 秒で完了しました。このようなシナリオで最適なパフォーマンスを得るには、DATE() 関数を検討してください。
以上がMySQL の DATETIME フィールドと日付を効率的に比較するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。