|
|
|
|
如何查找出某一天这个时间段的数据 发布时间:2007-04-26 20:04:52 作者:cservice 出处: 语言:中文 阅读次数:1908次 |
| 【适用范围】
EOS5.x
【问题描述和定位】
数据库定义REQ_APPTIME字段为date(oracle数据类型,包含时间信息)类型,然后用BL_queryEntityWithPageExt查询一个时间段的数据,比如DOM中查询条件为:
<TAB_REQUEST_ATTR>
<REQ_APPTIME>
<criteria>
<operator>between</operator>
<criteriaPattern>yyy-MM-dd</criteriaPattern>
<min>2006-11-17</min>
<max>2006-11-17</max>
</criteria>
</REQ_APPTIME>
</TAB_REQUEST_ATTR>
本意是查询REQ_APPTIME的日期为2006-11-17一天的数据,但是查询结果为空。经过查询eos.log,发现拼装的SQL语句为:
select * from TAB_REQUEST_ATTR where REQ_APPTIME between ? and ?;
两个参数的取值分别为:2006-11-17 00:00:00和2006-11-17 00:00:00,即查询2006-11-17 00:00:00这个时间点的数据,因此查询结果为空。
那么,如何查询出2006-11-17这一天的数据呢?
【解决方案和步骤】
实际上queryForm已经解决了上述问题:
查询2006年11月17日信息(注意:不要设置min和max):
<criteria>
<operator>between</operator>
<value>20061117</value>
</criteria>
类似的其它查询方法如下:
按年查询,查询2006年的信息 :
<criteria>
<operator>between</operator>
<dateRule>year</dateRule>
<year>2006</year>
</criteria>
查询2006年2季度的信息 :
<criteria>
<operator>between</operator>
<dateRule>year</dateRule>
<year>2006</year>
<quarter>2</quarter>
</criteria>
查询2006年5月份的信息 :
<criteria>
<operator>between</operator>
<dateRule>year</dateRule>
<year>2006</year>
<month>5</month>
</criteria>
【备注】
上述查询方法遵循QueryForm原理,即需要使用BL_queryEntityAllWithPageExt、BL_queryEntityAllExt等带ext的查询构件
|
|
| 声明:本栏目转载文字、造型、样式、图形及程序如有来自网络,版权归原作者或首发媒体所有,欢迎任何个人访问或者转载,若有作者及出处有误,请来信说明,我们将及时更正。 |
|