あなたはUTCに探している日時境界を変換するには次のようになります。
CONVERT_TZ関数が便利です。このような何か:
WHERE my_utc_date_time_col >= CONVERT('2016-02-20','EST5EDT','+00:00')
AND my_utc_date_time_col < CONVERT('2016-02-20','EST5EDT','+00:00') + INTERVAL 1 DAY
(これは、あなたが、MySQLのタイムゾーンテーブルを埋めてきたので、名前のタイムゾーンがサポートされていることを前提としています。)
に効果的同等巻き上げる:
WHERE my_utc_date_time_col >= '2016-02-20' + INTERVAL 4 HOUR
AND my_utc_date_time_col < '2016-02-20' + INTERVAL 4 HOUR + INTERVAL 1 DAY
または
WHERE my_utc_date_time_col >= '2016-02-20 04:00:00'
AND my_utc_date_time_col < '2016-02-21 04:00:00'
あなたは関数を参照したい場合などNOW()
現在の日付を取得するには、返されるdatetime値がMySQL接続のtime_zoneにあるため、MySQL接続のタイムゾーンが重要になります。私たちは、リテラル側ではなく、列に変換を行うことを好む
SHOW VARIABLES LIKE 'time_zone' ;
注ので、私たちは内のすべての行の変換を実行するためにMySQLを強制的に列、でそれを行う場合テーブルを作成し、リテラルを比較します。リテラル側で変換を行うと、MySQLはインデックス範囲のスキャン操作(適切なインデックスを使用可能)を有効に使用することができます。
適切な場合は質問履歴にアクセスして回答を受け入れることができます。それは、誰かが答えたいと思う人のための有望な光景ではありません。 – Drew
私は理解します。思い出してくれてありがとう。 – kenshin9