Чтобы обеспечить более детальный ответ и решить проблему этого https://stackoverflow.com/a/42429550/1267661 ответить в.
В Oracle столбец типа «дата» не является числом или строкой, это значение «datetime» с указанием года, месяца, дня, часа, минуты и секунды. время по умолчанию всегда полночь «00:00:00»
Запрос:
Select * From bdPedidos Where Data Like '%" + data + "%'"
не будет работать при любых обстоятельствах, так как столбец дата не является строкой, используя «как» силы Oracle сделать преобразование из значения даты в значение строки. Строковое значение может быть год-месяц-день-время или месяц-день-год-год или день-месяц-год-время, все зависит от того, как конкретный экземпляр Oracle установил параметр NLS_DATE_FORMAT для отображения дат в виде строк.
Правильный путь, чтобы охватить все возможные раз в день:
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')
Если вы хотите, чтобы все строки в январе 2015 Использование 'где to_char (STARTDATE«пн-YYYY») = 'январе- 2015 '; ' – Mihai
Взгляните на [Oracle SQL сравнение DATEs возвращает неверный результат] (http://stackoverflow.com/questions/29005398/oracle-sql-comparison-of-dates-returns-wrong-result/29005418# 29005418) –