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

Power Automate中OData查询日期格式错误排查求助

Power Automate中OData查询日期格式报错排查

原SQL查询需求

需要查询最近7天内金额≥10000美元的美国地区采购交易,原SQL语句如下:

SELECT 
    column_name_1, 
    column_name_2, 
    column_name_3
FROM 
    table_name
WHERE 
    CAST(Transaction_Date AS DATE) >= DATEADD(day, -7, CAST(GETDATE() AS DATE))
    AND CAST(Amount_in_USD AS FLOAT) >= 10000
    AND TYPE_OF_TRANSACTION = 'PURCHASE'
    AND Transaction_Country = 'US';

注:Transaction_Date列的数据格式为字符串类型的'2024-03-21'。

转换后的OData查询

转换后尝试使用的OData查询:

筛选查询

Transaction_Date ge datetime'2024-03-03T00:00:00Z' 
and Amount_in_USD ge 10000 
and TYPE_OF_TRANSACTION eq 'PURCHASE' 
and Transaction_Country eq 'US'

选择查询

column_name_1, column_name_2, column_name_3

报错信息

运行时持续抛出如下错误:

Unrecognized 'Edm.String' literal 'datetime'2024-03-03T00:00:00Z'' at '31' in 'Transaction_Date ge datetime'2024-03-03T00:00:00Z' and Amount_in_USD ge 10000 and TYPE_OF_TRANSACTION eq 'PURCHASE' and Transaction_Country eq 'US''.

     inner exception: Unrecognized 'Edm.String' literal 'datetime'2024-03-03T00:00:00Z'' at '31' in 'Transaction_Date ge datetime'2024-03-03T00:00:00Z' and Amount_in_USD ge 10000 and TYPE_OF_TRANSACTION eq 'PURCHASE' and Transaction_Country eq 'US''.
clientRequestId: dde40166-d0e8-4e45-b63e-7ee37afe38ba

问题原因及解决方案

问题原因

Transaction_Date是字符串类型(Edm.String),而非日期时间类型(Edm.DateTimeOffset/Edm.DateTime),OData无法识别针对字符串列使用datetime'...'格式的字面量,因此抛出语法错误。

解决方案

  1. 修正日期比较格式:直接使用与Transaction_Date匹配的字符串日期格式(YYYY-MM-DD)进行比较,无需添加datetime前缀。
  2. 动态生成7天前日期:避免硬编码日期,使用Power Automate表达式自动计算最近7天的起始日期,确保查询的时效性。

修正后的完整筛选查询

Transaction_Date ge '@{formatDateTime(addDays(utcNow(), -7), 'yyyy-MM-dd')}' 
and Amount_in_USD ge 10000 
and TYPE_OF_TRANSACTION eq 'PURCHASE' 
and Transaction_Country eq 'US'

选择查询保持不变

column_name_1, column_name_2, column_name_3

补充说明

  • formatDateTime(addDays(utcNow(), -7), 'yyyy-MM-dd'):该表达式会自动计算当前UTC时间往前推7天的日期,并格式化为YYYY-MM-DD的字符串,与Transaction_Date的格式完全匹配。
  • 若需使用本地时间而非UTC时间,可将utcNow()替换为convertTimeZone(utcNow(), 'UTC', '你的时区ID')(例如'China Standard Time')。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 15:09:53