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

如何编写SOQL查询获取今日起365天/过去365天的数据?

解决SOQL日期范围查询错误的方案

错误原因分析

你遇到的两个错误根源在于:

  1. SOQL不允许直接对Date类型值和数字执行加法运算(Current_Date() + 365属于非法操作),必须使用专用日期函数处理日期偏移。
  2. 查询中Datetime类型字段与Current_Date()(Date类型)的类型不匹配,导致比较运算符触发类型校验错误。

正确查询示例

获取今日至未来365天的数据

SELECT Id__c 
FROM table 
WHERE Datetime__c BETWEEN TODAY AND DATEADD(TODAY, 365, 'day')

或者用更直观的范围写法:

SELECT Id__c 
FROM table 
WHERE Datetime__c >= TODAY 
  AND Datetime__c <= DATEADD(TODAY, 365, 'day')

获取过去365天至今日的数据

SELECT Id__c 
FROM table 
WHERE Datetime__c >= DATEADD(TODAY, -365, 'day') 
  AND Datetime__c <= TODAY

补充说明

  • TODAY是SOQL内置的日期字面量,代表当前系统日期,比Current_Date()更简洁易用。
  • DATEADD(date, interval, unit)函数用于实现日期偏移,支持的单位包括day、month、year等,能确保日期运算的合法性和类型一致性。
  • 如果需要精确匹配时间范围(比如今日0点至未来365天的23:59:59),可以用DATETIMEVALUE()转换日期并补充时间偏移:
SELECT Id__c 
FROM table 
WHERE Datetime__c >= DATETIMEVALUE(TODAY) 
  AND Datetime__c <= DATETIMEVALUE(DATEADD(TODAY, 365, 'day')) + 0.99999

(+0.99999等价于给日期加上23小时59分59秒)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 10:07:39