WEEK(date) - YEARWEEK(date) - Queste due funzioni rendono il numero della
settimana da una data dell'anno. Il secondo parametro "first" serve ad indicare
se la settimana inizia di domenica (0) oppure Lunedi'(1). Il comportamento differisce
nel modo di presentare i dati. WEEK() ha un range 0-53 dove la settimana 0 sara'
nei giorni che intercorrono dal giorno 1 Gennaio alla prima ricorrenza della
domenica o lunedi' (dipende dalla scelta 0/1). YEARWEEK() invece rende anno
e n. settimana in forma numerica. Il range delle settimane e' 1-52.
Vediamo alcuni confronti: Il giorno 2000-01-01 era un sabato.
select week("2000-01-01") => 0 -> settimana 0 (sabato)
select week("2000-01-02") => 1 -> settimana 1 (domenica)
select week("2000-01-02","1") => 0 -> settimana 0 (domenica)
select week("2000-01-03","1") => 1 -> [i]settimana 1 (lunedi')
select yearweek("2000-01-01") => 199952 -> Anno 1999 settimana 52 (sabato)
select yearweek("2000-01-02") => 200001 -> Anno 2000 settimana 01 (domenica)
select yearweek("2000-01-02","1") => 199952 -> Anno 1999 settimana 52 (domenica)
select yearweek("2000-01-03","1") => 200001 -> Anno 2000 settimana 01 (lunedi')
Si pone l'accento su queste funzioni perche' il numero della settimana e' molto
usato nelle applicazioni aziendali (statistiche, pert, contabilita'...). Le agende in
circolazione inoltre non rispondono ad un unico standard. Sicuramente la funzione
YEARWEEK() non lascia adito a dubbi (no 0 - no 53).