Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

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


Você precisa especificar o modo 3 na chamada mysql YEARWEEK:
SELECT YEARWEEK(now(),3); 

O PHP date() espaço reservado W retorna o número da semana de acordo com a especificação ISO 8601 . Isso significa que as semanas começam na segunda-feira (não no domingo), a primeira semana do ano é o número 1 (não 0), e essa semana é a primeira que com mais da metade de seus dias no ano novo (portanto, tem que ser janeiro até quinta-feira). De acordo com a documentação do MySQL Função SEMANA , essa combinação de opções é o modo 3.

Além disso, para inserir a nota de Alles na resposta aceita porque é importante:os espaços reservados Y e W não vá junto. Se você quiser o ano que acompanha o número da semana ISO, você deve usar o em vez de Y . Por exemplo, considere a semana que começa na segunda-feira, 29 de dezembro 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