首页 > 解决方案 > 无法解决错误消息 Msg 241, Level 16, State 1, Line 1 从字符串转换日期和/或时间时转换失败

问题描述

我无法弄清楚为什么我不断收到错误一切看起来都很好:

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

SELECT [BFName] 
      ,[S]
      ,[D]
      ,[T]
      ,[N]
, [WeeklyAverage]
, [4WeekAverage]
, [Range] 
  FROM [dbReportCard].[dbo].[vw_Bullfrog_WER_Modified_Frequency_Crosstab_with_Totals]
   where [ProductionWeek] = '[cb#ProductionWeek]'
   and [BFName] = 'BF 16'

标签: sqlsql-serverstringdatetimewhere-clause

解决方案


此错误可能来自以下where子句:

where [ProductionWeek] = '[cb#ProductionWeek]'

大概ProductionWeek是一个类似日期的数据类型。大概,您想将它与column cb#ProductionWeek进行比较,它也可以是日期等。但是列名周围的单引号将其转换为文字字符串,然后 SQL Server 尝试将其转换为日期以进行比较 - 当然,这会失败。

我怀疑你只是想要:

where [ProductionWeek] = [cb#ProductionWeek]

推荐阅读