2016-04-28 14 views
2

これは私のSQLクエリです。これは、UTCタイムゾーンで合計行を返します。私は、異なるタイムゾーンでcompleted_dateフィールドをカウントしたいと思います。 America/Los_Angelesのタイムゾーン形式のようなものです。私は何かGROUPまたはDATE関数を使う必要があると聞きましたが、私は何の考えもしません。これは、あなたがそれであなたの日付を比較できるようにcompleted_dateを変換するために動作するはずmysqlの異なるタイムゾーンで合計行数を取得する方法

SELECT COUNT(*) 
    FROM `team_users` 
WHERE (`completed_date` BETWEEN '2016-04-27 00:00:00' AND '2016-04-27 23:59:59') 
+0

をあなたは 'timezone'という列を持っていますか? – WillardSolutions

+0

クエリーに入れる前に、日付を現地時間帯からUTCに変換します。 – Mike

答えて

2

SELECT COUNT(*) 
    FROM `team_users` 
    WHERE (CONVERT_TZ(`completed_date`, '+00:00', '-08:00') 
    BETWEEN '2016-04-27 00:00:00' AND '2016-04-27 23:59:59') 

タイムゾーンオフセットを使用すると、アメリカ/ Los_Angelesとして問題がある理由は、夏時間の日に-07:00ですそれ以外は-08:00です。

お使いのシステムは、名前のタイムゾーンを使用するように設定されている場合は、太平洋標準時または America/Los_Angelesため UTC、その後を使用することができます

http://dev.mysql.com/doc/refman/5.0/en/time-zone-support.html

+0

MySQLでタイムゾーンデータをロードせずに 'PST'が動作しますか? – Mike

+0

@Mike:おそらくそうではありません:http://dev.mysql.com/doc/refman/5.0/en/time-zone-support.html – AbraCadaver

+0

おそらくMySQLでタイムゾーンデータをロードする必要があるのであれば、おそらく 'America/Los_Angeles'常にうまくいくはずですね。 – Mike

関連する問題