sql >> Database >  >> RDS >> Mysql

PHP date('W') vs MySQL JAARWEEK(nu())

U moet modus 3 specificeren op de mysql YEARWEEK-aanroep:

SELECT YEARWEEK(now(),3); 

De PHP date() tijdelijke aanduiding W geeft het weeknummer terug volgens de ISO 8601-specificatie . Dat betekent dat weken op maandag beginnen (niet op zondag), de eerste week van het jaar is nummer 1 (niet 0), en die week is de eerste die met meer dan de helft van zijn dagen in het nieuwe jaar (dus het moet januari zijn) tegen donderdag). Volgens de documentatie voor de MySQL WEEK-functie , die combinatie van opties is modus 3.

Ook om de notitie van Alles in het geaccepteerde antwoord te trekken omdat het belangrijk is:de tijdelijke aanduidingen Y en W gaan niet samen. Als u het jaar wilt dat bij het ISO-weeknummer hoort, moet u o . gebruiken in plaats van Y . Neem bijvoorbeeld de week die begint op maandag 29 december 2014:

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. Hoe een door komma's gescheiden tekenreeks in SQL optellen?

  2. Netwerkinfrastructuur opnieuw koppelen

  3. Huawei GaussDB

  4. FOUT:Fout 1005:Kan tabel 'cat10e.recording' niet maken (fout:150)