mybatis怎么实现时间段查询

sinat_31841789 2015-10-08 01:40:12

数据库中就一个时间字段,请问各位大侠,xml的sql要怎么写?谢了好多次一直报错,求助!!
...全文
66307 点赞 收藏 26
写回复
26 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
酷似阿模 2019-04-17
动态sql不能用>=<来判断 用>=这是大于等于 <=这是小于等于 注意分号
回复
qq_28297467 2017-08-23
不错,我来顶一下
回复
qq_34994724 2017-08-22
引用 11 楼 lk569696322 的回复:
<select id="selectOrderListByPage" parameterType="com.xhh.webui.system.entity.Order" resultType="com.xhh.webui.system.entity.Order"> select * from `order` <where> <if test="begindate != null and begindate !=''"> createTime>#{begindate,jdbcType=TIMESTAMP} </if> <if test="enddate != null and enddate !=''"> and createTime<#{enddate,jdbcType=TIMESTAMP} </if> </where> <if test="sort != null and order != null"> <![CDATA[ order by ${sort} ${order} ]]> </if> LIMIT #{start},#{rows} </select> 今天刚写的
上面的分页查询如何实现?小白一只,谢谢大神!
回复
pc9528 2017-08-22
兄弟,给你推荐一个orm工具吧,不用写sql,面向对象的查询。api级的数据操作,多表查询简单的不要不要的 http://www.rabbit-open.top/rabbit/orm
回复 1
kevin00012 2017-03-16

有时我们需要对一个时间段内的时间进行查询,而又不确定我们传入的参数究竟有几个(可以为一个:只有一个开始时间点或者只有一个结束时间点;也可以为两个:一个开始时间点喝一个结束时间点),这是我们就要用到动态查询。因为mybatis只支持传入一个参数,所有这里我们传入的map,以键值对的形式将我们需要的参数传进去,在map中添加键值对,key为startTime和endTime,而value则是我们传入的时间,注意:我们传入的时间要和数据库中的时间格式一致我们才能用小于小于来比较,比如我这里数据库用的是datetime,他的时间格式就是yyyy-MM-dd HH:mm:ss,我们也要传入类似的格式的数据才能相互比较,还有一点就是在XML中<是不能用需要用<代替使用。
回复
podd 2017-03-16
时间段用between
回复
jiajing1990_ 2017-03-15
<if test="beginTime != null and beginTime != '' "> <![CDATA[ AND dwarntime >= #{beginTime} ]]> </if> <if test="endTime != null and endTime != ''"> <![CDATA[ AND dwarntime <= #{endTime} ]]> </if>
回复
time!="" 你要写这个吧
回复
hbbddzh 2017-03-15
引用 11 楼 lk569696322 的回复:
<select id="selectOrderListByPage" parameterType="com.xhh.webui.system.entity.Order" resultType="com.xhh.webui.system.entity.Order"> select * from `order` <where> <if test="begindate != null and begindate !=''"> createTime>#{begindate,jdbcType=TIMESTAMP} </if> <if test="enddate != null and enddate !=''"> and createTime<#{enddate,jdbcType=TIMESTAMP} </if> </where> <if test="sort != null and order != null"> <![CDATA[ order by ${sort} ${order} ]]> </if> LIMIT #{start},#{rows} </select> 今天刚写的
我想知道你的实体类中enddate是什么类型的
回复
吃货时代 2017-03-15
这样就可以了
回复 1
Intboy 2016-04-29
引用 2 楼 sinat_31841789 的回复:
我是这么写的,但是做test的时候报错,说time1不存在,这个要怎么写,现在有点乱。
sql中>要转义,同时你time1应该是!=‘’吧
回复
景川呀 2016-04-29
回复
qq_34052171 2016-04-27
其实这个问题纯粹是你没有在第一个where条件汇总加上“and”
回复
sean__zhao 2016-01-06
引用 2 楼 sinat_31841789 的回复:
我是这么写的,但是做test的时候报错,说time1不存在,这个要怎么写,现在有点乱。
醉的不行.... <if test="time!=null and time1='' "> <if test="time2!=null and time2!='' ">
回复
糖果_ 2015-10-10
数据库是date的字段类型 t.rtstarttime <![CDATA[<]]>= to_date(#{rttime},'yyyy-MM-dd hh24:mi:ss') and t.rtendtime >= to_date(#{rttime},'yyyy-MM-dd hh24:mi:ss') rttime是传过来的字符串“2015-10-10 10:20:12”
回复
im_thirteen 2015-10-10
<select id="selectOrderListByPage" parameterType="com.xhh.webui.system.entity.Order" resultType="com.xhh.webui.system.entity.Order"> select * from `order` <where> <if test="begindate != null and begindate !=''"> createTime>#{begindate,jdbcType=TIMESTAMP} </if> <if test="enddate != null and enddate !=''"> and createTime<#{enddate,jdbcType=TIMESTAMP} </if> </where> <if test="sort != null and order != null"> <![CDATA[ order by ${sort} ${order} ]]> </if> LIMIT #{start},#{rows} </select> 今天刚写的
回复
longbaopyl 2015-10-09
WHERE 1=1 <if test="startDate != null and startDate != ''"> AND a.publishDate > #{startDate} </if> <if test="endDate != null and endDate != ''"> AND a.publishDate < #{endDate} </if> 这个是我自己写的,可以运行
回复
DY1201 2015-10-09
你的time1啥意思啊?time1应该就是time吧,你把你的time1改成time
回复
zilin110 2015-10-09
<![CDATA[ 这里面是sql语句. 大于号.小于号 ]]> 用这个把大于号.小于号包含起来就可以了.
回复
bobo1232 2015-10-08
楼上正解的的deed
回复
加载更多回复
相关推荐
发帖
Web 开发
创建于2007-09-28

8.0w+

社区成员

Java Web 开发
申请成为版主
帖子事件
创建了帖子
2015-10-08 01:40
社区公告
暂无公告