30.9.13

Treballar amb setmanes a MySQL

La funció Week de MySQL retorna el número de la setmana de la data que si li passa com a paràmetre. Ara bé, per defecte ens dóna un número de setmana entre 0 i 53, considera el diumenge el primer dia de la setmana i la primera setmana de l'any és la que comença a partir del primer diumenge de l'any. 

Aquesta funció té un segon paràmetre amb 8 possibles valors on es pot configurar que dilluns sigui el primer dia de la setmana, que el valor de la setmana estigui en el rang 1-53 o amb diverses consideracions sobre quina és la primera setmana de l'any.

Per exemple la funció WEEK(CURDATE,1) considera el dilluns el primer dia de la setmana, la primera setmana la que té almenys 3 dies d'aquest any i retornarà un valor entre 0 i 53.

Altres funcions com WEEKOFYEAR(date) retorna un número entre 1 i 53 i per tant és equivalent a WEEK(date,3). En canvi YEARWEEK(date,mode) permet usar el mateixos paràmetres que WEEK, però retorna l'any i la setmana.

En definitiva, si heu de treballar amb setmanes en MySQL feu una ullada a la documentació i feu algunes proves. Tot i que el sistema sembla complex, segurament aquest mecanisme és més flexible que fer servir una variable global que defineixi per exemple el primer dia de la setmana com passa en altres bases de dades.