0
点赞
收藏
分享

微信扫一扫

MyBatis-------时间函数处理


一、MySQL解决方案

MySQL使用date_format函数来解决。

        

MyBatis-------时间函数处理_oracle

        

MyBatis-------时间函数处理_mysql_02

SELECT * FROM `t_log`
WHERE
# 比19号多,但是不到21号,就是查询20号
date_format(operation_time,'%Y-%m-%d') > '2020-03-19'
AND
date_format(operation_time,'%Y-%m-%d') < '2020-03-21'

    查询结果:

    

MyBatis-------时间函数处理_数据库_03

startDate是字符串类型,operation_time是SQL的时间类型

<if test="startDate != null and startDate != ''">
<![CDATA[
AND date_format(OPERATION_TIME,'%Y-%m-%d') >= #{startDate}
]]>
</if>
<if test="endDate != null and endDate != ''">
<![CDATA[
AND date_format(OPERATION_TIME,'%Y-%m-%d') <= #{endDate}
]]>
</if>

二、Oracle解决方案

         Oracle解决方案:从头开始学Oracle--------时间函数

Oracle使用to_date函数来解决。

startDate与endDate是字符串类型,从实际解决方案上来看,是利用Oracle的to_date函数,将参数转为时间与表中的记录进行对比。

         【t.CREATE_DATE】 ,这个字段是Oracle的DATE类型。 

         【 #{startDate}】 ,传入的参数为字符串为类型

<if test="startDate!=null and startDate !=''">
and
<![CDATA[
t.CREATE_DATE >=
to_date(concat(#{startDate},'00:00:00'),'YYYY-MM-DD HH24:MI:SS')
]]>
</if>

<if test="endDate!=null and endDate !=''">
and <![CDATA[
t.CREATE_DATE <=
to_date(concat(#{endDate},'23:59:59'),'YYYY-MM-DD HH24:MI:SS')
]]>
</if>

     

 

                    

举报

相关推荐

0 条评论