2017-05-09 12 views
0

私のウェブサーバは、私のデータベースはヨーロッパパリのタイムゾーンが設定されている& ... 私のウェブサイトは、実際に彼らは私がフランスに持っているより-1H少なくなったポルトガルに住む人々によって使用されることを意味しているフランスにある...MySQL WeekOfYear()(タイムゾーン付き)?

私はこのクエリーをに、の好きなものを得るために使用しています。問題は、私の質問は、そこです....それはまだ日曜日23h30だ、それは例えば月曜日00h30仮定フランスで新しい週だとき、それはまだ私のポルトガル先週の原因の結果を与える必要があり

"SELECT COUNT(*) as likes, user 
FROM likes_week 
WHERE WEEKOFYEAR(data_e) = WEEKOFYEAR(NOW()) 
GROUP BY user ORDER BY likes" 

です私はSQLクエリで何をしたいのか、私はPHPでのみ行うことができます任意の方法?

答えて

1

は、私はあなたがこの

"SELECT COUNT(*) as likes, user 
FROM likes_week WHERE date_column 
BETWEEN DATEADD(hh, -1, GETDATE()) 
AND DATEADD(week,-1,GETDATE()) 
GROUP BY user ORDER BY likes" 

を忘れないでください、私はあなたの日付列の名前が「date_column」 があることを想定していると私は1時間前と1週間前の間に日付を取っているような何かをすることができると思います。

希望すると便利です。

+0

それはうまくいきました、あなたに仲間ありがとう! – Praem

+0

@Praemは喜んでお手伝いします! – zenwraight

0

これは、あなたの日付の保存方法に依存します&回。

これがTIMESTAMPの場合、これはUnix Timeの形式の単純なUTCです。指定された、またはデフォルトのサーバーのタイムゾーンに自動的に変換されます。

それはDATETIMEある場合 - 。ですることになったタイムゾーン

その後、それはあなたがDBに書き込む方法によって異なります。サーバーがフランスにあり、タイムゾーンが正しく設定されていて、MySQLがデフォルト設定を使用している場合、すべてのDATETIME値はそのタイムゾーン、フランスのタイムゾーンにある必要があります。

関連する問題