Вы не должны преобразовывать типы данных даты в символы при выполнении сравнений.Это имеет два отрицательных эффекта:
- Вы фактически «скрываете» статистику по этим столбцам, что означает, что оптимизатор может не сделать лучший выбор плана выполнения
- Если у вас есть индексы настолбцы, вы запрещаете их использование.
Если ваши столбцы CREATED_ON
и MODIFIED_ON
не хранят часть времени, то ваши предикаты могут быть просто
BC.CREATED_ON = trunc(SYSDATE)
OR
BC.MODIFIED_ON = trunc(SYSDATE)
Есливаши столбцы do
содержат часть времени, тогда вы должны сформулировать свои предикаты, как показано
BC.CREATED_ON >= trunc(sysdate) and BC.CREATED_ON < trunc(sysdate)+1
or
BC.MODIFIED_ON >= trunc(sysdate) and BC.MODIFIED_ON < trunc(sysdate)+1
Что вы пытаетесь сделать, так это избегать применения функции к столбцам,TO_CHAR()
в вашем вопросе