Ad esempio potrebbe essere necessario determinare la data di inizio/fine settimana a partire da una data o dal numero della settimana.
Fra le funzioni che MySql mette a disposizione, non ce ne sono che fanno al nostro caso.
In ogni modo è relativamente semplice ottenere questi valori:
SELECT
DATE_ADD(mydate, INTERVAL(2-DAYOFWEEK (mydate)) DAY) AS startWeek,
DATE_ADD(mydate, INTERVAL(8-DAYOFWEEK (mydate)) DAY) AS endWeek
FROM
mytable
Come funziona? La funzione
DAYOFWEEK
restituisce un intero compreso fra 1 (domenica) e 7 (sabato). Quindi, ad esempio se mydate
è martedi DAYOFWEEK
restituisce 3 ottenendo il seguente statement:DATE_ADD(mydate, INTERVAL -1 DAY) AS startWeek
che sostanzialmente sottrae 1 a
mydate
ottenendo la data di inizio settimana (martedi-1=lunedì) e:che restituisce la data di fine settimana (martedi+5=domenica).DATE_ADD(mydate, INTERVAL 5 DAY) AS endWeek
Nessun commento:
Posta un commento