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>
更多MyBatis使用经验
你看我都这么努力的分享知识给你了,鼓励一下又何妨O(∩_∩)O
你的打赏是对我最好的支持!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· .NET Core 中如何实现缓存的预热?
· 三行代码完成国际化适配,妙~啊~
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?