Sql 从字符串转换日期和/或时间时转换失败?
即使查询是有效的,为什么仍会发生这种情况?。。。我的代码如下:) 当我运行此命令时,会出现此错误 Msg 241,16级,状态1,第1行 从字符串转换日期和/或时间时,转换失败Sql 从字符串转换日期和/或时间时转换失败?,sql,sql-server,Sql,Sql Server,即使查询是有效的,为什么仍会发生这种情况?。。。我的代码如下:) 当我运行此命令时,会出现此错误 Msg 241,16级,状态1,第1行 从字符串转换日期和/或时间时,转换失败 需要指导&提前谢谢你。我想你的问题就在这里 因为我觉得[上次回调]是Varchar()数据类型 当您将varchar数据类型转换为date并与varchar进行比较时,会出现此错误 请在同一数据类型中更改这两个条件 WHERE [Last Call Back] = (SELECT MAX(Convert (Date,
需要指导&提前谢谢你。我想你的问题就在这里 因为我觉得[上次回调]是Varchar()数据类型 当您将varchar数据类型转换为date并与varchar进行比较时,会出现此错误 请在同一数据类型中更改这两个条件
WHERE [Last Call Back] = (SELECT MAX(Convert (Date, [Last Call Back], 103))FROM Projects2)
我认为您需要检查表中
[上次回调]
列的数据。检查所有数据是否对日期转换有效。我认为某些字符串不能将其转换为日期。所以您需要通过ISDate()函数来检查它。ISDDate()函数将根据您的语言和文化工作,如下所示
SET LANGUAGE british
SELECT ISDATE('2013-11-20') /* will return 0 */
SET LANGUAGE us_english
SELECT ISDATE('2013-11-20') /* will return 1 */
例如,如果您的列的格式如下所示,则会出现错误
SELECT CONVERT(DATE, '2013-11-20', 103)
&持续发生的问题是我的问题:)请帮助我们发布准确的错误,以帮助您添加表结构信息。看起来
[上次回调]
是一个varchar列,实际上应该是一个日期列。有哪些值(=任何非日期值)?表中现在有错误:)您可以检查[上次回调]
列中的一些示例数据吗?或者可以使用ISDATE
检查列是否包含正确的日期值,这也是我在阅读查询时的第一个想法。究竟为什么要将任何格式的列转换为其他格式,然后将其与原始列格式进行比较?
SELECT CONVERT(DATE, '2013-11-20', 103)