繁体   English   中英

从字符串转换日期和/或时间时转换失败?

[英]Conversion failed when converting date and/or time from character string?

即使查询有效,仍然会发生这种情况的原因是什么?...我的代码如下:)

Select Cdf_Code_Tx, ProjectNo, Convert (Date, [Last Call Back],103) As LastCallBack, (CDF_New_des1_Tx+CDF_New_des2_Tx) As Description
From Products
Inner Join SpecDetails
On CDF_Code_Tx = ProductRef
Inner Join Projects2
On ProjectNo = PID
WHERE  [Last Call Back] = (SELECT MAX(Convert (Date, [Last Call Back], 103))FROM Projects2)
Order By Convert (Date, [Last Call Back], 103) 

当我运行它时,出现此错误!

消息241,级别16,状态1,行1转换在从字符串转换日期和/或时间时失败。

需要指导并提前感谢您。

我认为你的问题在这里因为我似乎[Last Call Back]是varchar()数据类型,当你转换varchar数据类型是日期并与varchar比较然后你有这个错误请你应该改变相同数据类型的两个条件

WHERE  [Last Call Back] = (SELECT MAX(Convert (Date, [Last Call Back], 103))FROM Projects2)

我想您需要检查表格中[Last Call Back]列的数据。 检查所有数据是否对日期转换有效。 我认为某些字符串无法将其转换为日期。 所以你需要通过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)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM