|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Jan 2003
Città: Roma Messaggi Totali:50333
Messaggi: 3519
|
[MySql] Query su intervallo di date
Ciao a tutti,
ho un problema con una query che mi sta facendo dannare... devo tirare fuori da una tabella dei valori che corrispondono ad un intervallo di giorni (da inizio mese a ieri). le ho provate tutte ma l'interrogazione mi include anche alcuni giorni del mese precedente pur avendogli dato come intervallo ben definito dal 1/03/2015 al 31/03/2015. la query è la seguente: Codice:
SELECT `COL 6` FROM `realtime_es3` WHERE `COL 4` = 'Attiva' AND `COL 6` < DATE_FORMAT (now(),'%e/%m/%Y') and `COL 6` between '01/03/2015' and '31/03/2015' se semplifico la query così Codice:
SELECT `COL 6` FROM `realtime_es3` WHERE `COL 4` = 'Attiva' AND `COL 6` between '01/03/2015' and '31/03/2015' Pensavo che il problema potesse essere il fatto che il tipo della colonna data è varchar, ma anche facendo un cast a DATE mi restituisce null. Grazie in anticipo!
__________________
Photo: Nikon D80 - Nikon 105Vr Micro + Nikon 70-300Vr + 18-135 + 50mm 1.8 + F65 + Canon S3 Is + Casio S600 Pc: Amd X2 6400+ - Asus M2N SLI Deluxe - 4 x 1Gb Corsair XMS2 800mHz cas 4 - Ati Hd 2600 Xt 512Mb ddr3 - Case TT Armor-Coolpanel2 Utenti con cui ho trattato |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Feb 2006
Città: Parma
Messaggi: 3010
|
Il tipo di dato di `COL 6` è VARCHAR? E contiene solo date formattate "alla europea", giusto?
Perché questa scelta molto poco felice? Perché un nome scomodo che non identifica il contenuto? Per finire, perché 'Attiva' in `COL 4` non è un INT o TINYINT? Lavorando molto poco efficientemente sui dati grezzi penserei a una cosa del genere: Codice:
SELECT `COL 6` FROM `realtime_es3` WHERE `COL 4` = 'Attiva' AND STR_TO_DATE(`COL 6`,'%d/%m/%Y') < NOW() AND STR_TO_DATE(`COL 6`,'%d/%m/%Y') BETWEEN '2015-03-01' AND '2015-03-31' Codice:
SELECT `COL 6` FROM `realtime_es3` WHERE `COL 4` = 'Attiva' AND ADDTIME( STR_TO_DATE(`COL 6`,'%d/%m/%Y'), '23:59:59.999') < NOW() AND STR_TO_DATE(`COL 6`,'%d/%m/%Y') BETWEEN '2015-03-01' AND '2015-03-31'
__________________
~Breve riferimento ai comandi GNU/Linux (ormai non molto breve...) |
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Jan 2003
Città: Roma Messaggi Totali:50333
Messaggi: 3519
|
Che dirti....sei un grande!!!Grazie!!!ho fatto solo una prova veloce ma pare che funziona...il mio errore era nel dare a between gli intervalli con le date in formato europeo anzichè americano?
__________________
Photo: Nikon D80 - Nikon 105Vr Micro + Nikon 70-300Vr + 18-135 + 50mm 1.8 + F65 + Canon S3 Is + Casio S600 Pc: Amd X2 6400+ - Asus M2N SLI Deluxe - 4 x 1Gb Corsair XMS2 800mHz cas 4 - Ati Hd 2600 Xt 512Mb ddr3 - Case TT Armor-Coolpanel2 Utenti con cui ho trattato |
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Feb 2006
Città: Parma
Messaggi: 3010
|
Varie incomprensioni sovrapposte:
__________________
~Breve riferimento ai comandi GNU/Linux (ormai non molto breve...) |
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: Jan 2003
Città: Roma Messaggi Totali:50333
Messaggi: 3519
|
Grazie mille!
__________________
Photo: Nikon D80 - Nikon 105Vr Micro + Nikon 70-300Vr + 18-135 + 50mm 1.8 + F65 + Canon S3 Is + Casio S600 Pc: Amd X2 6400+ - Asus M2N SLI Deluxe - 4 x 1Gb Corsair XMS2 800mHz cas 4 - Ati Hd 2600 Xt 512Mb ddr3 - Case TT Armor-Coolpanel2 Utenti con cui ho trattato |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 12:22.



















