sql >> Base de Datos >  >> RDS >> Mysql

Fecha de PHP ('W') vs MySQL YEARWEEK (ahora ())

Debe especificar el modo 3 en la llamada mysql YEARWEEK:

SELECT YEARWEEK(now(),3); 

La date() de PHP marcador de posición W devuelve el número de semana según la especificación ISO 8601 . Eso significa que las semanas comienzan el lunes (no el domingo), la primera semana del año es el número 1 (no el 0), y esa semana es la primera que tiene más de la mitad de sus días en el nuevo año (entonces tiene que ser enero). para el jueves). Según la documentación de MySQL Función SEMANA , esa combinación de opciones es el modo 3.

Además, para colocar la nota de Alles en la respuesta aceptada porque es importante:los marcadores de posición Y y W no vayas juntos Si desea el año que va con el número de semana ISO, debe usar o en lugar de Y . Por ejemplo, considere la semana que comienza el lunes 29 de diciembre de 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