当我们集成了一些前端框架,在某些展示页面上往往具有某些查询条件。而这其中日期查询的处理又较为麻烦,此处,我罗列了一种当前台上传了一种默认的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 bookingnoFROM hievaluate aWHERE 1 = 1AND 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中的完整格式为:
to_char(a.create_date,'yyyy-MM-dd') = to_char(#create_date:TIMESTAMP#, 'yyyy-MM-dd')
此处前台上传的数据格式为: yyyy-MM-dd HH:mm:ss.S
eg: 2018-11-23 00:00:00.0
目前在实际项目中试用多种方法,暂时只有上面的格式正常运行