Oracle date query fix
Last update
2016-09-30
2016-09-30
« — »
In Oracle, a seconda della configurazione, i campi di tipo date
hanno anche ore, minuti e secondi... e le query spesso non funzionano come si vorrebbe :-(
È bene salvare le date impostando il tempo a mezzogiorno (basta un'ora diversa da mezzanotte) in modo che quando c'รจ il cambio di ora tra legale e solare non avvenga un cambio di data.
Per i confronti invece ecco una soluzione:
1 2 3 4 5 6 7 | -- se il campo NON ha un indice: SELECT * FROM tabella WHERE TRUNC(campo_data) = DATE '2016-09-20'; -- se il campo ha un indice: SELECT * FROM tabella WHERE campo_data >= DATE '2016-09-20' AND campo_data < DATE '2016-09-20' + 1; |