You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

属性与参数数据类型一致时出现字符串转日期/时间转换失败报错如何解决

报错根因

你的代码存在两处错误触发了类型转换失败:

  • 给datetime类型的变量@BeginDate赋值了字符串常量'BeginDate',SQL Server无法将普通文本BeginDate转换为合法的日期时间格式
  • WHERE过滤条件中直接使用字符串常量'BeginDate'和日期类型的ProcessStart字段做比较,同样会触发非法类型转换尝试

修正方案

方案1:直接引用报表参数(最简写法)

SSRS数据集查询中可以直接调用已配置的报表参数,不需要额外声明变量,代码简化为:

SELECT *
FROM MessageDeliveries AS MD
WHERE MD.ProcessStart >= @BeginDate

方案2:保留自定义变量的写法

如果确实需要先把参数值赋值给自定义变量使用,引用报表参数时不要加单引号,修正后代码如下:

DECLARE @BeginDate datetime
-- 直接引用报表参数,不需要加单引号,@BeginDate为你配置的报表参数名
SET @BeginDate = @BeginDate

SELECT *
FROM MessageDeliveries AS MD
WHERE MD.ProcessStart >= @BeginDate

注意:如果你的报表参数名和自定义变量名重名,建议调整自定义变量名避免歧义,比如改成@QueryBeginDate,防止变量作用域冲突。

内容的提问来源于stack exchange,提问作者Jeff Gilmore

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 19:24:03