Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 从字符串转换日期和/或时间时转换失败?_Sql_Sql Server - Fatal编程技术网

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

Sql 从字符串转换日期和/或时间时转换失败?,sql,sql-server,Sql,Sql Server,即使查询是有效的,为什么仍会发生这种情况?。。。我的代码如下:) 当我运行此命令时,会出现此错误 Msg 241,16级,状态1,第1行 从字符串转换日期和/或时间时,转换失败 需要指导&提前谢谢你。我想你的问题就在这里 因为我觉得[上次回调]是Varchar()数据类型 当您将varchar数据类型转换为date并与varchar进行比较时,会出现此错误 请在同一数据类型中更改这两个条件 WHERE [Last Call Back] = (SELECT MAX(Convert (Date,

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

当我运行此命令时,会出现此错误

Msg 241,16级,状态1,第1行 从字符串转换日期和/或时间时,转换失败


需要指导&提前谢谢你。

我想你的问题就在这里 因为我觉得[上次回调]是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)