Ho un db con un campo DateTime "data_attivo"..
se faccio questa semplice query, non funziona correttamente...
come mai???
SELECT *
FROM `tab_offerte`
WHERE `data_attivo` > '12/12/2008'
Ho un db con un campo DateTime "data_attivo"..
se faccio questa semplice query, non funziona correttamente...
come mai???
SELECT *
FROM `tab_offerte`
WHERE `data_attivo` > '12/12/2008'
codice:SELECT * FROM `tab_offerte` WHERE date_format(`data_attivo`,"%Y-%m-%d") > '2008-12-12'
Ho provato così... ma non funziona..
SELECT * FROM tab_offerte WHERE '2008/01/16' BETWEEN date_format( `data_attivo` , '%Y-%m-%d' ) AND date_format( `data_fine` , '%Y-%m-%d' )
data_attivo = 2008-01-01 00:00:00
data_fine = 2008-03-01 00:00:00
il record dovrebbe essere compreso... ma non tira fuori nulla...![]()
come sono memorizzate le date nel db? cioe' con quale formato?Originariamente inviato da henry78
aiuto...![]()
Il silenzio è spesso la cosa migliore. Pensa ... è gratis.
nel formato "datetime"...
il db lo sto preparando ora... se c'e' da cambiare il formato del campo... nessun problema!
codice:SELECT * FROM tab_offerte WHERE NOW() BETWEEN `data_attivo` AND `data_fine`
Il silenzio è spesso la cosa migliore. Pensa ... è gratis.
così funziona! grazie!
però devo passargli io la data..
SELECT *
FROM tab_offerte
WHERE '2008/16/01' BETWEEN `data_attivo` AND `data_fine`
però così non funziona..![]()
non dovrebbe contare molto, ma se non ti serve ore-min-sec usa un campo DATE. Anche perche' una data_fine per essere corretta dovrebbe essere yyyy-mm-dd 23:59:59 e non 00:00:00 altrimenti ti fumi l'ultimo giorno.Originariamente inviato da henry78
così funziona! grazie!
però devo passargli io la data..
SELECT *
FROM tab_offerte
WHERE '2008/16/01' BETWEEN `data_attivo` AND `data_fine`
però così non funziona..![]()
Prova a passare la data con il trattino invece che con lo slash come separatore. Passi una stringa che non viene valutata come data, ma come stringa.
WHERE '2008-16-01' BETWEEN ......
Il silenzio è spesso la cosa migliore. Pensa ... è gratis.
così sembra funzionare:
SELECT *
FROM tab_offerte
WHERE '2008-02-28'
BETWEEN date_format( `data_attivo` , '%Y-%m-%d' )
AND date_format( `data_fine` , '%Y-%m-%d' )
che fatica...![]()
grazie![]()