ホームページ >データベース >mysql チュートリアル >時刻を含む 2 つの日付間の MySQL データを正しく選択するにはどうすればよいですか?
MySQL: 2 つの日付の間のデータの選択
MySQL で日時フィールドを操作するときは、日付のニュアンスを認識することが重要です書式設定。お気づきのとおり、時間を考慮せずに日付形式 '2011-12-06 10:45:36' を使用すると、特定の日付間のデータを取得しようとすると予期しない結果が生じる可能性があります。
Midnight Trap
MySQL のデフォルトの日付の短縮バージョンは、00:00:00 を日付の開始として解釈します。 日。これは、クエリ:
SELECT `users`.* FROM `users` WHERE created_at >= '2011-12-01' AND created_at <= '2011-12-06'
が実質的に次のようになったことを意味します:
SELECT `users`.* FROM `users` WHERE created_at >= '2011-12-01 00:00:00' AND created_at <= '2011-12-06 00:00:00'
その結果、期待していた項目「2011-12-06 10:45:36」は、時間コンポーネントが指定された範囲外だったため除外されました。
エレガント解決策
この問題に対処するには、いくつかのオプションがあります:
SELECT `users`.* FROM `users` WHERE created_at >= '2011-12-01' AND created_at <= '2011-12-07'
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));
以上が時刻を含む 2 つの日付間の MySQL データを正しく選択するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。