gpt4 book ai didi

sql - 这种 try_convert 用法有什么问题?

转载 作者:行者123 更新时间:2023-12-04 21:40:27 25 4
gpt4 key购买 nike

我正在尝试使用 mssql2012 中的新 try_convert 功能将日期/时间/偏移量字符串转换为 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,

最佳答案

由于 try_convert 中的 CAST 语句,您会收到错误 - try_convert 不会消耗你产生的所有错误,如果你的转换失败,它只会返回 NULL

如果您对两次尝试都使用 try_convert,它将起作用:

当 try_convert(datetimeoffset, (try_convert(datetimeoffset, substring(@DateString,1,10) + ' ' + substring(@DateString,12,8) + ' ' + substring(@DateString,20,6 )))) 为空

Working Fiddle of your code here.

关于sql - 这种 try_convert 用法有什么问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16367111/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com