SOQL数据查询时对日期的相关处理操作。
2017-07-25 10:37
337 查看
一. 日期相关处理函数
在数据查询中,我们很多时候需要通过日期进行数据过滤。这时,使用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 : 本年
在数据查询中,我们很多时候需要通过日期进行数据过滤。这时,使用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 : 本年
相关文章推荐
- 数据统计例子,相关子查询!(SQL 中循环操作一列数据方法)
- 多表查询相关,以及数据集合操作
- access 数据查询中碰到的日期相关的问题
- Oracle 11g 学习五:子查询,数据更新操作,事务处理和数据伪列
- SQL语言多表查询、分组统计、子查询、数据表的更新操作、事务处理
- T-SQL查询前十条数据相关操作
- mysql 学习---->字符串、数值处理、日期、查询的逻辑处理、系统相关内容查询、IP地址相关、密码
- 数据统计例子,相关子查询!(SQL 中循环操作一列数据方法)
- 腾讯云图片鉴黄集成到C# SQL Server 怎么在分页获取数据的同时获取到总记录数 sqlserver 操作数据表语句模板 .NET MVC后台发送post请求 百度api查询多个地址的经纬度的问题 try{}里有一个 return 语句,那么紧跟在这个 try 后的 finally {}里的 code 会 不会被执行,什么时候被执行,在 return 前还是后? js获取某个日期
- 关于excel表格数据处理及导入oracle数据库相关操作
- 数据更新操作,事物处理,伪列,分页查询
- .NET 使用GridView控件绑定数据源其他操作(查询相关数据,而不是显示全数据)
- SQL SERVER 2008用Select操作处理数据(二)——查询语句的逻辑流
- 查询选定日期范围内相关数据
- 数据库对 日期格式数据 操作处理
- jquery 处理页面弹出层查询数据等待的操作(gif图片加载等待)
- jquery处理页面弹出层查询数据等待操作实例
- mysql 学习记录(五)--字符串、数值处理、日期、查询的逻辑处理、系统相关内容查询、IP地址相关、密码
- Oracle spatial 空间数据SQL查询操作相关实例
- SQL查询相关技术-7.SQL操作(形成2个数据表)