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

一、MySQL解决方案

        MySQL使用date_format函数来解决。

        

        

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中写法实例。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>

     Oralce字段是Date时,转String

SELECT REMARK remark, to_char(UPDATE_TIME,'yyyy-mm-dd hh24:mi:ss') updateTime

更多MyBatis使用经验

         MyBaits操作经验目录贴

你看我都这么努力的分享知识给你了,鼓励一下又何妨O(∩_∩)O

你的打赏是对我最好的支持!

                     

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小大宇

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值