Talend Data Stewardship TQL组合双条件查询结果异常求助
Talend Data Stewardship TQL组合日期过滤条件异常排查
问题现象
- 单独使用
creationDate >= 1682265600000时,creationDate为1682361299087的记录被正确选中 - 单独使用
creationDate < 1682352000000时,该记录被正确排除(因1682361299087 > 1682352000000) - 组合使用
creationDate >= 1682265600000 AND creationDate < 1682352000000时,该不符合范围的记录仍被选中,与预期不符
排查方向
- 明确逻辑运算符优先级
尝试给每个条件加上括号,写成(creationDate >= 1682265600000) AND (creationDate < 1682352000000),避免因TQL的运算符优先级规则导致条件解析偏差。 - 校验字段类型匹配
确认creationDate在TDS中的数据类型:如果是字符串类型,直接做数值比较会触发字典序比对(而非数值比对),需先转成数值类型再比较,比如用TO_NUMBER(creationDate) >= 1682265600000 AND TO_NUMBER(creationDate) < 1682352000000。 - 排查UI输入格式问题
检查组合条件输入时是否存在多余空格、特殊符号,或UI自动转义了字符导致条件被错误解析。可以尝试通过TDS的API直接发送查询,排除UI层面的解析异常。 - 检查版本已知Bug
部分旧版本Talend Data Stewardship存在TQL组合条件解析的Bug,确认当前版本是否有对应修复补丁,或升级到最新稳定版测试。 - 验证时间戳范围正确性
先确认时间戳对应的实际日期:1682265600000→ 2023-04-23 00:00:00 UTC1682352000000→ 2023-04-24 00:00:00 UTC- 目标记录的
1682361299087→ 2023-04-24 02:34:59 UTC,确实不在组合条件范围内,排除时间戳换算错误的可能。
内容的提问来源于stack exchange,提问作者Panadol Chong
相关产品推荐
相关产品推荐

