Ваша проблема с конвертацией будет выглядеть как в предложении WHERE
. Но, прежде чем приступить к выполнению запроса, я бы протестировал, используя TRY_CONVERT()
:
select approve_date
from dly_upgrade
where slp = '368' and approve_date is not null and
try_convert(date, approve_date, 103) is null;
Стиль 101
- ММ / ДД / ГГГГ, поэтому '15/11/2016'
потерпит неудачу, поскольку 15
недопустимый месяц. 103
- это ДД / ММ / ГГГГ, что соответствует вашим ожиданиям.
Предполагая, что это не возвращает неожиданных значений в столбце, я бы предложил:
SELECT PERIODE, RF, APPROVE_DATE
FROM DLY_UPGRADE
WHERE SLP = '368' AND
TRY_CONVERT(datetime, APPROVE_DATE, 103) > '2017-01-01'
ORDER BY ? -- not sure if you want PERIOD or TRY_CONVERT(datetime, APPROVE_DATE, 103)