Mysql
 sql >> Database >  >> RDS >> Mysql

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

È necessario specificare la modalità 3 nella chiamata mysql YEARWEEK:

SELECT YEARWEEK(now(),3); 

Il PHP date() segnaposto W restituisce il numero della settimana in base alla specifica ISO 8601 . Ciò significa che le settimane iniziano il lunedì (non la domenica), la prima settimana dell'anno è la numero 1 (non 0) e quella settimana è la prima con più della metà dei suoi giorni nel nuovo anno (quindi deve essere gennaio entro giovedì). Secondo la documentazione per MySQL funzione SETTIMANA , quella combinazione di opzioni è la modalità 3.

Inoltre, inserire la nota di Alles nella risposta accettata perché è importante:i segnaposto Y e W non andare insieme. Se desideri l'anno corrispondente al numero della settimana ISO, dovresti utilizzare o invece di Y . Ad esempio, considera la settimana che inizia lunedì 29 dicembre 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