Я пытаюсь использовать новую функцию try_convert в mssql2012 для преобразования строки даты/времени/смещения в datetimeoffset.
Строка выглядит так: 2013-04-25T21:56:58.077-05:00
Вот код - я знаю, что этот синтаксический анализ не будет работать, поэтому я ожидал, что результат попадет в «IS NULL» и вернет «Cast Failed». Это не то, что произошло - вместо этого я все еще получаю сообщение об ошибке преобразования даты Msg 241. Любые идеи?
case
when try_convert(datetimeoffset, (cast(substring(lift.PlannedLiftDateTime,1,10) + ' ' + substring(lift.PlannedLiftDateTime,12,8) + ' ' + substring(lift.PlannedLiftDateTime,20,6) as datetimeoffset))) IS NULL
then 'Cast Failed'
when ltrim(rtrim(lift.PlannedLiftDateTime)) = ''
then NULL
else
'~' + lift.PlannedLiftDateTime + '~'
end as PlannedLiftDateTime,