MySQL で 2 つの日付間のデータを取得する
MySQL で日時値を扱う場合、短い日付形式の午前 0 時のデフォルトを考慮することが重要です。これにより、日付範囲内のデータをクエリするときに予期しない結果が生じる可能性があります。
たとえば、created_at 列が '2011-12-01' から '2011-12-06 の間にあるレコードを選択したい場合、 ' 次のクエリを使用すると、
SELECT `users`.* FROM `users` WHERE created_at >= '2011-12-01' AND created_at <= '2011-12-06'
は望ましい結果を返さない可能性があります。これは、短い日付形式が時刻を暗黙的に午前 0 時として解釈するためです。
この問題を修正するには、'2011-12-07' を上限として使用するようにクエリを調整します。
SELECT `users`.* FROM `users` WHERE created_at >= '2011-12-01' AND created_at <= '2011-12-07'
あるいは、MySQL の date_add() 関数または BETWEEN 演算子を使用して同じことを実現できます。 result:
SELECT `users`.* FROM `users` WHERE created_at >= '2011-12-01' AND created_at <= date_add('2011-12-01', INTERVAL 7 DAY)
SELECT `users`.* FROM `users` WHERE created_at BETWEEN '2011-12-01', date_add('2011-12-01', INTERVAL 7 DAY)
短い日付形式のデフォルトの深夜解釈を考慮することで、MySQL で指定された日付範囲内のデータを正確に取得できます。
以上が特定の日付範囲内の MySQL データを正しく取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。