di fornire una risposta più dettagliata e affrontare problema questo https://stackoverflow.com/a/42429550/1267661 di risposta.
In Oracle una colonna di tipo "data" non è un numero né una stringa, è un valore "datetime" con anno, mese, giorno, ora, minuto e secondi. Il tempo di default è sempre la mezzanotte "00:00:00"
La query:
Select * From bdPedidos Where Data Like '%" + data + "%'"
non funziona in tutte le circostanze, perché una colonna di data non è una stringa, utilizzando "come" forze Oracle fare una conversione dal valore data al valore stringa. Il valore stringa può essere anno-mese-giorno-ora o mese-giorno-anno-anno o giorno-mese-anno-tempo, tutto dipende da come una particolare istanza Oracle ha impostato il parametro NLS_DATE_FORMAT per mostrare le date come stringhe.
Il modo giusto per coprire tutte le possibili volte in un giorno è:
Select *
From bdPedidos
Where Data between to_date('" + data + " 00:00:00','yyyy-mm-dd hh24:mi:ss')
and to_date('" + data + " 23:59:59','yyyy-mm-dd hh24:mi:ss')
Se si desidera che tutte le righe nel gennaio 2015 l'uso 'dove to_char (startDate, 'Mon-YYYY') = 'gen- 2015 '; ' – Mihai
Dai un'occhiata a [Confronto Oracle Oracle di DATE restituisce risultati errati] (http://stackoverflow.com/questions/29005398/oracle-sql-comparison-of-dates-returns-wrong-result/29005418# 29005418) –