Mysql
 sql >> Datenbank >  >> RDS >> Mysql

PHP-Datum ('W') vs. MySQL YEARWEEK (jetzt ())

Sie müssen Modus 3 beim mysql-YEARWEEK-Aufruf angeben:

SELECT YEARWEEK(now(),3); 

Das PHP date() Platzhalter W gibt die Wochennummer gemäß der ISO 8601-Spezifikation zurück . Das bedeutet, Wochen beginnen am Montag (nicht am Sonntag), die erste Woche des Jahres ist die Nummer 1 (nicht 0), und diese Woche ist die erste, die mit mehr als der Hälfte ihrer Tage im neuen Jahr liegt (es muss also Januar sein bis Donnerstag). Laut der Dokumentation für MySQL WEEK-Funktion , diese Kombination von Optionen ist Modus 3.

Außerdem, um die Notiz von Alles in die akzeptierte Antwort zu ziehen, weil es wichtig ist:die Platzhalter Y und W gehen nicht zusammen. Wenn Sie das Jahr wünschen, das zur ISO-Wochennummer gehört, sollten Sie o verwenden statt Y . Betrachten Sie beispielsweise die Woche, die am Montag, den 29. Dezember 2014 beginnt:

date('YW', mktime(0,0,0,12,29,2014));  #=> 201401 : 1st week of 2014??
date('oW', mktime(0,0,0,12,29,2014));  #=> 201501 : better