Mysql
 sql >> Baza danych >  >> RDS >> Mysql

PHP date('W') vs MySQL YEARWEEK(now())

Musisz określić tryb 3 w wywołaniu mysql YEARWEEK:

SELECT YEARWEEK(now(),3); 

PHP date() symbol zastępczy W zwraca numer tygodnia zgodnie ze specyfikacją ISO 8601 . Oznacza to, że tygodnie zaczynają się w poniedziałek (nie w niedzielę), pierwszy tydzień roku ma numer 1 (nie 0), a ten tydzień jest pierwszym, który ma więcej niż połowę dni w nowym roku (więc musi to być styczeń do czwartku). Zgodnie z dokumentacją MySQL TYDZIEŃ funkcja , ta kombinacja opcji to tryb 3.

Ponadto, aby umieścić notatkę Allesa w zaakceptowanej odpowiedzi, ponieważ jest to ważne:symbole zastępcze Y i W nie idźcie razem. Jeśli chcesz, aby rok był zgodny z numerem tygodnia ISO, powinieneś użyć o zamiast Y . Rozważmy na przykład tydzień rozpoczynający się w poniedziałek 29 grudnia 2014 r.:

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


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySql pobiera rekordy lub dane według dziennych, tygodniowych, miesięcznych i rocznych

  2. mysql LOAD DATA INFILE z automatycznym przyrostem klucza podstawowego

  3. Pokaż wszystkie wiersze w tabeli mysql, a następnie daj opcję usunięcia określonych

  4. Hasło MySQL wygasło. Nie mogę się połączyć

  5. ustawienie portów map na 80 i 3306