PDA

View Full Version : [SQL] Selezione record tra due date


DigitalKiller
07-04-2008, 23:06
Come da titolo, devo selezionare tutti i record compresi in un certo intervallo di date (es. tra 01/01/2008 e 07/04/2008). Il problema è dovuto al fatto che la data non è memorizzata in un unico campo bensì in tre campi distinti:
- uno per il giorno
- uno per il mese
- uno per l'anno
Questo pomeriggio ho provato tutte le soluzioni possibili (almeno quelle alla mia portata) ma non ho risolto nulla. Avete qualche suggerimento?
Grazie:)

vizzz
07-04-2008, 23:10
Come da titolo, devo selezionare tutti i record compresi in un certo intervallo di date (es. tra 01/01/2008 e 07/04/2008). Il problema è dovuto al fatto che la data non è memorizzata in un unico campo bensì in tre campi distinti:
- uno per il giorno
- uno per il mese
- uno per l'anno
Questo pomeriggio ho provato tutte le soluzioni possibili (almeno quelle alla mia portata) ma non ho risolto nulla. Avete qualche suggerimento?
Grazie:)

puoi cambiare il formato della tabella? sarebbe la soluzione ottimale e più veloce.
che database è?

DigitalKiller
07-04-2008, 23:16
puoi cambiare il formato della tabella? sarebbe la soluzione ottimale e più veloce.
che database è?
No, non posso cambiare la struttura. Se avessi potuto farlo, l'avrei già fatto:D
Si tratta di un database db2 su un i5 a cui accedo da una pagina php tramite odbc

cionci
08-04-2008, 00:51
Allora dipende da come gestisce db2 le date.

Indicativamente dovrebbe essere una cosa del genere:

SELECT * FROM Tabella
WHERE Date('1/4/2008') <= Date(Concat(Tabella.Day, '/', Tabella.Month, '/', Tabella.Year) && Date('10/4/2008') >= Date(Concat(Tabella.Day, '/', Tabella.Month, '/', Tabella.Year);

ovviamente come farlo dipende dal dialetto SQL specifico, che non conosco.