博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
OAF中trunc函数的使用(转)
阅读量:6436 次
发布时间:2019-06-23

本文共 1913 字,大约阅读时间需要 6 分钟。

原文地址:

需求:在做OAF开发时,经常会需要查询功能,由于需求的不同,往往不能使用OAF标准的查询功能,需要自己客户化实现查询功能,而在查询功能中,经常会遇到查询的时间范围,要查询从。。。开始,到。。。结束这段时间内的结果,所以会经常在AM的实现类里面给vo增加where语句限制,往往是获取某个查询条件,然后该查询条件大于等于开始时间,小于等于结束时间,例如:

if (searchSubmitDateFrom != null && !("".equals(searchSubmitDateFrom))) {               whereClause.append(" AND submit_date >= :");    whereClause.append(++bindCount);    params.addElement(searchSubmitDateFrom);}if (searchSubmitDateTo != null && !("".equals(searchSubmitDateTo))) {               whereClause.append(" AND submit_date <= :");    whereClause.append(++bindCount);    params.addElement(searchSubmitDateTo);}

 

这中写法,问题来了,当运行时,如果提交日期等于结束日期的记录往往是查询不到的,因为日期的时分秒引起的。所以这种情况要使用trunc函数对时间进行处理,把时间的时分秒给去除掉,例如:

if (searchSubmitDateTo != null && !("".equals(searchSubmitDateTo))) {               whereClause.append(" AND trunc(submit_date) <= trunc(:");    whereClause.append(++bindCount + ")");    params.addElement(searchSubmitDateTo);}if (searchReqPickDateFrom != null && !("".equals(searchReqPickDateFrom))) {    whereClause.append(" AND trunc(require_pick_date) >= trunc(:");    whereClause.append(++bindCount + ")");    params.addElement(searchReqPickDateFrom);}

再次运行,不会出现类似问题。

trunc函数用法:

1.TRUNC(for dates)

描述:TRUNC函数为指定元素而截去的日期值。

语法:TRUNC(date[,fmt]),其中date 一个日期值,fmt 日期格式,该日期将由指定的元素格式所截去。忽略它则由最近的日期截去。

使用情况:

TRUNC(TO_DATE('24-Nov-1999 08:00 pm'),'dd-mon-yyyy hh:mi am') = '24-Nov-1999 12:00:00 am'TRUNC(TO_DATE('24-Nov-1999 08:37 pm','dd-mon-yyyy hh:mi am'),'hh') ='24-Nov-1999 08:00:00 am' trunc(sysdate,'yyyy') --返回当年第一天.trunc(sysdate,'mm') --返回当月第一天. trunc(sysdate,'d') --返回当前星期的第一天.

2.TRUNC(for number)

描述:TRUNC函数返回处理后的数值,其工作机制与ROUND函数极为类似,只是该函数不对指定小数前或后的部分做相应舍入选择处理,而统统截去。

语法:TRUNC(number[,decimals]),其中,number 待做截取处理的数值,decimals 指明需保留小数点后面的位数。可选项,忽略它则截去所有的小数部分。

使用情况:

TRUNC(89.985,2) = 89.98 TRUNC(89.985) = 89 TRUNC(89.985,-1) = 80

注意:注意:第二个参数可以为负数,表示为小数点左边指定位数后面的部分截去,即均以0记。与取整类似,比如参数为1即取整到十分位,如果是-1,则是取整到十位,以此类推。 

转载地址:http://eaqga.baihongyu.com/

你可能感兴趣的文章
使用List的remove方法需要的注意的问题
查看>>
Ansible的介绍、安装、配置及常用模块介绍
查看>>
编码列表
查看>>
eigrp 配置
查看>>
谈一谈 redis 集群
查看>>
concurrent包
查看>>
在Linux下调试Python代码的各种方法
查看>>
centos7塔建MQ服务器
查看>>
Peer authentication failed for user
查看>>
超强的.NET图像工具包VintaSoftImaging.NET SDK更新至v8.6丨75折优惠
查看>>
阿里云上Kubernetes集群联邦
查看>>
洛谷2219:[HAOI2007]修筑绿化带——题解
查看>>
监控webservice信息
查看>>
a标签中href=""的几种用法(转)
查看>>
python
查看>>
ubuntu 常用生产环境部署配置测试调优
查看>>
【JS】//将中文逗号转换为英文逗号
查看>>
在VS2012中实现Ext JS的智能提示太简单了
查看>>
Extnet Direct 提交后台事件文件下载设置
查看>>
邻接矩阵与二叉排序树
查看>>