SOQL数据查询时对日期的相关处理操作。

一. 日期相关处理函数

 在数据查询中,我们很多时候需要通过日期进行数据过滤。这时,使用soql的函数或者常量操作会更加便捷。主要函数和常量如下:

 CALENDAR_YEAR(field name):返回字段对应的年,此字段参数类型可以为Datetime类型也可以为Date类型,返回类型为Number类型。

eg:select Id from Account where CALENDAR_YEAR(CreatedDate) = 2016   -->查询创建时间为2016年的Account

CALENDAR_QUARTER(field name):返回字段对应的季度,其中1代表1月1日-3月31日,2代表4月1日到6月30日,3代表7月1日到9月30日 ,4代表10月1日到12月31日。

此字段类型返回的结果为1-4之间的数字,适用于Datetime或者Date类型。

select Id from Account where CALENDAR_YEAR(CreatedDate) = 2016 and  CALENDAR_QUARTER(CreatedDate) = 2    -->查询创建时间为2016年第二季度的Account

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

DAY_IN_MONTH(field name):返回参数日期中月份对应的日,比如参数如果是2016-02-25   则值返回25.

select count(Id) accountCount from Account where DAY_IN_MONTH(CreatedDate) < 20 group by CALENDAR_YEAR(CreatedDate) -->查询创建的天小于每个月20日的Account,通过年进行分组

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

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

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

除了正常的Calendar年月日以外,还有相关的财政年月日,可以自行查看。

HOUR_IN_DAY(field name):返回datetime类型参数中小时数,此参数只能是Datetime类型。

 还有很多常用的函数,详细看API

二.日期处理常用常量

数据查询中,有的时候使用常量会减少很多的参数传递,比如想要查CreatedDate为本年的数据,如果不适用SOQL自带的常量,则sql查询时,便需要apex代码中传递过来当前的年,然后通过CALENDAR_YEAR(CreatedDate)获取当年的匹配,但是如果使用常量,便可以直接CreatedDate = THIS_YEAR搞定问题。

常用常量如下所示:

YESTERDAY: 昨天 select Id from Account where CreatedDate = YESTERDAY   -->查询创建日期为昨天的Account记录

TODAY : 今天   

TOMORROW : 明天

NEXT_N_DAYS:n  超过今天第n天     SELECT Id FROM Opportunity WHERE CloseDate > NEXT_N_DAYS:2   -->查询关闭日期超过后天的Opportunity

THIS_WEEK : 本周

THIS_MONTH : 本月

NEXT_N_MONTH:n  超过本月第n月

THIS_QUARTER : 本季度

THIS_YEAR : 本年

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值