【发布时间】:2019-03-18 17:05:47
【问题描述】:
我的查询出现以下错误,但不确定是什么原因:
从字符串转换日期和时间时转换失败
这是在 SQL Server 2012 中出现错误的行:
(CONVERT(DATE, (CONVERT(varchar, A.[Month-Bcast]) + ' 1 ' + CONVERT(varchar, A.[Year-bcast])))) AS [Last Update]
[月-Bcast] = varchar(20), null
[年份-bcast] = varchar(20), null
【问题讨论】:
-
我们需要知道导致转换失败的价值。您是否考虑改用
TRY_CONVERT? -
我们在谈论什么价值?您是说将上面一行中的所有转换都替换为 try_convert 吗?
-
您尝试转换为
date的值。我们无法访问您的服务器,也无法看到您看到的内容;我们只知道您遇到了错误,但我们不知道导致该错误的值(因为您没有共享它)。如果您可以向我们展示导致转换错误的值,我们可以帮助您调试原因。# -
所以值是 [Year-bcast] = varchar(20), null),并且只是“2018”、“2017”、“2016”等 [Month-Bcast] = varchar(20 , null) 值为“Jan”、“feb”、“Mar”、“Apr”等
-
这些值都不会产生错误。 db<>fiddle。如果它是这些值之一,那是因为其中一列的值无效,例如
'Jsn'而不是'Jan'。
标签: sql-server sql-server-2012