2017-05-09 3 views
0

Mein Webserver in Frankreich & meine Datenbank hat Europa Paris Zeitzone ... ist meine Website tatsächlich von Menschen in Portugal lebenden verwendet werden soll, wo sie bekam -1 H kleiner als ich in Frankreich haben ...MySQL WeekOfYear() mit Zeitzone?

Ich verwende diese Abfrage zu erhalten Likes der Woche. Das Problem ist, wenn es die neue Woche ist in Frankreich unter der Annahme, Montag 00h30 zum Beispiel, sollte es in Portugal letzte Woche Ursache Ergebnisse ist es noch Sonntag 23.30 Uhr ....

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

meine Frage gibt mir immer noch so ist, gibt es Wie kann ich mit einer SQL-Abfrage das machen, was ich will? Oder kann ich das nur in PHP machen?

Antwort

1

ich glaube, Sie so etwas wie dieses

"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" 

Denken Sie daran, ich angenommen habe tun können, dass Name Ihres Datumsspalte ist ‚date_column‘ Und ich nehme Termine zwischen 1 Stunde vor und 1 Woche her.

Hoffe, das hilft!

+0

Das hat funktioniert, danke Kumpel! – Praem

+0

@Praem glücklich zu helfen! – zenwraight

0

Das hängt davon ab, wie Sie Ihre Daten speichern & mal.

Wenn das ist TIMESTAMP - es ist einfach nur UTC in Form von Unix Time. Es wird automatisch in die Zeitzone des Servers, angegeben oder Standard, konvertiert.

Wenn es DATETIME- - Zeitzone sein soll in

Dann hängt es davon ab, wie Sie es in DB schreiben.. Wenn der Server in Frankreich ist und die Zeitzone richtig eingestellt ist und MySQL Standardeinstellungen verwendet, sollten alle DATETIME-Werte in der Zeitzone von THAT liegen, der französische.