Возможно, вам не удастся изменить данные в базе данных , но вы, по крайней мере, можете привыкнуть использовать правильные форматы даты для своих запросов.
Во-первых, используйте convert с форматом 101
для преобразования. Используйте try_convert()
, если кто-то неправильно понял дату.
Во-вторых, используйте 'YYYYMMDD'
или 'YYYY-MM-DD'
для констант даты:
try_convert(date, v.InvoiceDate, 101) between '20110301' and '20180329'
Наконец, вы можете добавить вычисляемый столбец, так что Вы можете начать переход на лучший код:
alter table v add InvoiceDate_Date as (try_convert(date, vi.InvoiceDate, 101));
Затем вы можете написать логи c как:
InvoiceDate_date between '20110301' and '20180329'