Salesforce中SOQL中处理日期的函数

464 阅读2分钟

主要函数和常量

CALENDAR_YEAR(fieldName)

CALENDAR_YEAR(fieldName):返回字段对应的年,此字段参数类型可以为Datetime类型/Date类型,返回类

eg:查询创建时间为2022年的Account数据
SELECT Id FROM Account WHERE CALENDAR_YEAR(CreatedDate) = 2022

CALENDAR_QUARTER(fieldName)

CALENDAR_YEAR(fieldName):返回字段对应的季度,此字段参数类型可以为Datetime类型/Date类型,
返回的结果为1-4之间的数字,其中1代表11日-331日,2代表41日到630日,3代表71日到930日,
4代表101日到1231日

eg:查询创建时间为2016年第二季度的Account
SELECT Id 
FROM Account 
WHERE CALENDAR_YEAR(CreatedDate) = 2022 
AND CALENDAR_QUARTER(CreatedDate) = 2   

CALENDAR_MONTH(fieldName)

CALENDAR_MONTH(fieldName):返回参数对应的月,取值范围1-12

DAY_IN_MONTH(fieldName)

DAY_IN_MONTH(fieldName)返回参数日期中月份对应的日,比如参数如果是2022-09-7,则值返回7

eg:查询创建的天小于每个月20日的Account并通过年进行分组
SELECT count(Id) accountCount 
FROM Account 
WHERE DAY_IN_MONTH(CreatedDate) < 20 
GROUP BY CALENDAR_YEAR(CreatedDate) 

DAY_IN_WEEK(fieldName)

DAY_IN_WEEK(fieldName):返回参数日期中周对应的日,1代表周日,2代表周一,以此类推,7代表周六

DAY_IN_YEAR(fieldName)

DAY_IN_YEAR(field name):返回参数日期中当前日期在一年(365天)中对应的天数,例如如果是21日,则返回32

DAY_ONLY(fieldName)

DAY_ONLY(field name):返回Datetime类型参数对应的Date类型日期。
此方法可以实现Datetime类型到Date类型的转换,如果在数据表中,一个Datetime类型需要和一个Date类型作比较,
便可以使用DAY_ONLY函数将Datetime类型转换成Date类型。

其他常见的常量可参考 Date Formats and Date Literals in WHERE Clauses