SQL根据细粒度为天的查询

当我们集成了一些前端框架,在某些展示页面上往往具有某些查询条件。而这其中日期查询的处理又较为麻烦,此处,我罗列了一种当前台上传了一种默认的date格式的日期查询数据至后台未经Controller或Service层处理直接在SQL中处理的一种方式——即使用SQL的一些函数处理日期数据格式达到满足查询条件的目的

注:此处的数据库使用的Oracle,使用的SQL也是针对Oracle,所以对于其他数据库的SQL查询可能会有一定的出入

SELECT a.id as id,
a.orgid as orgid,
a.deptid as deptid,
a.doctorid as doctorid,
a.evaluate as evaluate,
a.note as note,
to_char(a.note_date, 'yyyy-MM-dd') as note_date,
a.business_type as business_type,
a.business_note as business_note,
a.evaluate_name as evaluate_name,
a.evaluate_id as evaluate_id,
a.effective as effective,
a.bookingno as bookingno
FROM hievaluate a
WHERE 1 = 1
AND substr(to_char(a.note_date,'yyyy-mm-dd'),0,10) = '2018-11-22';

其中的substr()函数可有可无,查询日期为2018-11-22的数据

在ibatis中前台如若传入date格式的查询条件则需格式化查询数据

Where子句后的查询条件更改为

to_char(a.create_date,'yyyy-MM-dd') = to_char(#create_date:TIMESTAMP#, 'yyyy-MM-dd')

最后在ibatis中的完整格式为:

<isNotEmpty prepend="AND" property="create_date"> 
      to_char(a.create_date,'yyyy-MM-dd') = to_char(#create_date:TIMESTAMP#, 'yyyy-MM-dd')
</isNotEmpty>

此处前台上传的数据格式为:    yyyy-MM-dd HH:mm:ss.S

                                      eg:         2018-11-23  00:00:00.0

目前在实际项目中试用多种方法,暂时只有上面的格式正常运行

猜你喜欢

转载自www.cnblogs.com/xieyu234/p/10408119.html
今日推荐