Discussione:
ricavare il lunedi e la domenica della settimana corrente
(troppo vecchio per rispondere)
Larry
20 anni fa
Permalink
Salve,

ho la seguente riga sql che mi seleziona i dati della settimana corrente
partendo dal lunedi fino alla domenica:

code:
------------------------------------------------------------------------
SELECT * FROM `prenotazioni` WHERE week(data,1) = WEEK(NOW(),1) order by
data
------------------------------------------------------------------------


ora vorrei che mi riportasse (magari non usando questa query ma
eseguendone una diversa prima) la data del lunedi e della domenica:

code:
------------------------------------------------------------------------
(lunedi) 2005-10-17 e (domenica) 2005-10-23
------------------------------------------------------------------------


così che prima della query posso scrivere "settimana dal 2005-10-17 al
2005-10-23" e poi giù i dati...

grazie!
--
Alla batteria dai retta, ballA!
Giuseppe Maxia
20 anni fa
Permalink
...
ingredienti:

- la query che hai appena mostrato
(ma come mai nel messaggio precedente dicevi che non funziona e
ora la usi come esempio? Hai qualche scompenso emotivo?)
- l'operatore AND
- una delle funzioni di MySQL gia' segnalate
http://dev.mysql.com/doc/refman/5.0/en/date-and-time-functions.html
- un po' di impegno personale

ciao
gmax
--
_ _ _ _
(_|| | |(_|><
_|
http://gmax.oltrelinux.com
Larry
20 anni fa
Permalink
Post by Giuseppe Maxia
- un po' di impegno personale
senti, mettiamoci una pietra sopra:

SELECT date_sub(curdate(),interval dayofweek(curdate()) - 1 day) AS
inizio, date_add(curdate(),interval 7 - dayofweek(curdate()) day) AS fine

output:

inizio
2005-10-16

fine
2005-10-22

(e non ci stanno 24 dicembre o altro che reggano...funziona alla grande!)

soltanto che questo codice usa la domenica come giorno d'izinio e sabato
il finale di settimana...come faccio a farla slittare di un giorno?
(monday - sunday) ??

grazie
--
Alla batteria dai retta, ballA!
Larry
20 anni fa
Permalink
Post by Larry
soltanto che questo codice usa la domenica come giorno d'izinio e sabato
il finale di settimana...come faccio a farla slittare di un giorno?
(monday - sunday) ??
giuro che l'ho chiesto solo perchè mi sembrava troppo banale:

SELECT date_sub( "2005-12-23", INTERVAL dayofweek( "2005-12-23" ) -2 DAY
) AS inizio, date_add( "2005-12-23", INTERVAL 8 - dayofweek("2005-12-23"
) DAY ) AS fine
--
Alla batteria dai retta, ballA!
Larry
20 anni fa
Permalink
Post by Larry
Post by Larry
soltanto che questo codice usa la domenica come giorno d'izinio e sabato
il finale di settimana...come faccio a farla slittare di un giorno?
(monday - sunday) ??
SELECT date_sub( "2005-12-23", INTERVAL dayofweek( "2005-12-23" ) -2 DAY
) AS inizio, date_add( "2005-12-23", INTERVAL 8 - dayofweek("2005-12-23"
) DAY ) AS fine
credete che ci sia una via più semplice invece di questa lunga query?
--
Alla batteria dai retta, ballA!
Giuseppe Maxia
20 anni fa
Permalink
Post by Larry
Post by Giuseppe Maxia
- un po' di impegno personale
SELECT date_sub(curdate(),interval dayofweek(curdate()) - 1 day) AS
inizio, date_add(curdate(),interval 7 - dayofweek(curdate()) day) AS fine
inizio
2005-10-16
fine
2005-10-22
(e non ci stanno 24 dicembre o altro che reggano...funziona alla grande!)
soltanto che questo codice usa la domenica come giorno d'izinio e sabato
il finale di settimana...come faccio a farla slittare di un giorno?
(monday - sunday) ??
grazie
Preferisco la piu' semplice:

SELECT * FROM `prenotazioni`
WHERE yearweek(data,1) = YEARWEEK(NOW(),1)
and weekday(data) = 0 ; -- lunedi'

SELECT * FROM `prenotazioni`
WHERE yearweek(data,1) = YEARWEEK(NOW(),1)
and weekday(data) = 6 ; -- domenica

ciao
gmax
--
_ _ _ _
(_|| | |(_|><
_|
http://gmax.oltrelinux.com
Larry
20 anni fa
Permalink
Post by Larry
SELECT * FROM `prenotazioni`
WHERE yearweek(data,1) = YEARWEEK(NOW(),1)
and weekday(data) = 0 ; -- lunedi'
SELECT * FROM `prenotazioni`
WHERE yearweek(data,1) = YEARWEEK(NOW(),1)
and weekday(data) = 6 ; -- domenica
ti ringrazio, ma ora mi sto scostando dalla tabella `prenotazioni`, mi
interessa in generale il discorso del rnge di date, a proposito ho
notato una cosa in questa query:

SELECT date_sub( curdate() , INTERVAL dayofweek( curdate() ) -2
DAY ) AS Lunedi, date_add( curdate() , INTERVAL 8 - dayofweek( curdate()
) DAY ) AS Domenica

che mi da come risultato:

Lunedi
2005-10-24

Domenica
2005-10-30

al contrario io avrei voluto che mi restituisse:

Lunedi
2005-10-17

Domenica
2005-10-23

qual'è il problema?

grazie
--
Alla batteria dai retta, ballA!
Continua a leggere su narkive:
Loading...