Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

PL SQL: Каковы правила хорошего тона при указании даты в условии?

Дмитрий Митяев Ученик (3), закрыт 4 года назад
Дополнен 4 года назад
Как стоит преобразовывать дату в условии, чтобы не падала производительность?

Сегодня мне сделали замечание, что пишу типа: WHERE CREATION_DATE BETWEEN '2019-01-01' AND '2019-09-01'
Лучший ответ
Дед Мазай Гений (58109) 4 года назад
Тут надо думать не о производительности, а чтоб это вообще работало. Тут строка преобразуется в дату. Формат строки зависит от текущей локали.
В Оракле есть литералы даты:
date '2019-01-01'
Литерал не зависит от локали.
Или можно использовать преобразование строки в дату в явном виде с указанием формата:
to_date('2019-01-01', 'yyyy-mm-dd').
Обычно данные являются параметрами запроса, поэтому такой проблемы нет. Дата передаётся как дата, а не как строка. Преобразования не требуются.
Остальные ответы
А Мудрец (14639) 4 года назад
Можно объявить параметры через declare, тогда не придётся волноваться о приведении к нужному типу:

DECLARE @date1 date = '2019-01-01'
DECLARE @date2 date = '2019-09-01'

К тому же повышает читаемость, если у вас параметр несколько раз встречается
Похожие вопросы