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

Azure Data Factory存储过程日期参数传递报错求助

解决U-SQL中WHERE子句布尔类型错误的问题

看起来你在Azure Data Factory的U-SQL脚本里遇到了类型不匹配的问题,我来帮你梳理一下问题和解决方案:

首先,报错提示The expression for this clause must be of bool type,说明你的WHERE FiscalMonth = @FiscalMonth表达式没有被解析成布尔值,大概率是变量@FiscalMonth的赋值逻辑有问题;另外你提到需要生成'November, 2017'格式的日期,但当前代码生成的是数字月份(比如'11,2017'),这也会导致后续比较不匹配,我一起帮你修正。

修正后的完整代码

-- 生成"November, 2017"格式的月份字符串,用U-SQL的字符串插值更简洁
DECLARE @FiscalMonth string = $"{DateTime.Today.AddMonths(-2):MMMM}, {DateTime.Today.AddMonths(-2):yyyy}";

@Input = EXTRACT 
           [TPID] int, 
           FiscalMonth string, 
           ProductGroup string, 
           [Workload Customer Age] int, 
           [Entitlements] int, 
           [Field Activations Capped] int, 
           [Field Activiations Uncapped] int, 
           [True Activations Capped] int, 
           [True Activations Uncapped] int, 
           [CappedFlag] string, 
           [AOM_Status_Current] string, 
           [AOM_Status_Historical] string 
         FROM @DeltaPublishOutputPath 
         USING Extractors.Text(delimiter : '\u0001', rowDelimiter : "\r", nullEscape : "#NULL#", silent : true);

@Output = SELECT of.* 
          FROM @Input AS of 
          WHERE of.FiscalMonth == @FiscalMonth; -- 用==明确做布尔比较,避免歧义

-- 记得添加输出逻辑(根据你的需求调整路径和输出器)
OUTPUT @Output TO @YourOutputPath USING Outputters.Text();

关键修正点说明

  1. 变量赋值逻辑优化:
    用U-SQL支持的字符串插值语法$""替代原来的+拼接,不仅代码更简洁,还能确保生成你需要的月份全称, 年份格式(比如November, 2017)。原来的MM格式符会生成数字月份,这和你要的目标格式不符。

  2. WHERE子句的比较优化:

    • 明确指定列的别名of.FiscalMonth,避免变量和列名可能的歧义;
    • 使用==作为相等比较运算符,这是U-SQL中更标准的布尔比较写法(虽然=也能工作,但==更清晰,不会和赋值操作混淆)。

额外排查建议

如果你还是遇到问题,可以先单独验证变量@FiscalMonth的生成结果:

DECLARE @FiscalMonth string = $"{DateTime.Today.AddMonths(-2):MMMM}, {DateTime.Today.AddMonths(-2):yyyy}";
@TestOutput = SELECT @FiscalMonth AS GeneratedFiscalMonth;
OUTPUT @TestOutput TO "/test/fiscal_month_validation.csv" USING Outputters.Text();

运行这段脚本后,查看输出文件,确认生成的字符串格式是否和源数据中的FiscalMonth列完全一致(注意空格、大小写等细节)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 07:38:06