ibaits mysql 时间段查询

问题描述

mysql 数据库里面有一个 start_date 一个 end_date 自己给出一个对象里面有两个时间段分别为startTime endTime 要查出startTime > start_date 且 endTime < end_date 的所有的东西 怎么写呢这里用的是动态查询<isNotNull prepend="AND" property="startDate"> <![CDATA[ pad.start_time - #startDate# >= 0 ]]> </isNotNull> <isNotNull prepend="AND" property="endDate"> <![CDATA[ #endDate# - pad.end_time >= 0 ]]> </isNotNull> 这样反正不行额 求解答

解决方案

<isNotNull prepend="AND" property="startDate"><![CDATA[ pad.start_time - #startDate# >= 0 ]]> </isNotNull><isNotNull prepend="AND" property="endDate"><![CDATA[ #endDate# - pad.end_time >= 0 ]]> </isNotNull>参数是 什么类型的 如果是字符串的话可以这么写pad.start_time >= #startDate# pad.end_time <=#endDate
解决方案二:
#XML 里面有五个特殊字符,需要转义
解决方案三:
<isNotNull prepend="," property="record.endTime" > END_TIME = #record.endTime:TIMESTAMP# </isNotNull>这是 oracle的 endTime 类型对应表是 Date类型 bean 是 private Date endTime;希望对你有所帮助
解决方案四:
#endDate#你直接用的 #号 表名参数是字符串 如果数据库是Date类型的 需要 to_date 一下在和数据库比较

时间: 2024-09-28 04:15:53

ibaits mysql 时间段查询的相关文章

数据统计-请问如何实现下面的mysql分组查询(新学关系数据库感觉有点复杂所以求教)

问题描述 请问如何实现下面的mysql分组查询(新学关系数据库感觉有点复杂所以求教) 查找ip不为127.0.0.1的某个时间段内的数据(比如在2016-03-15 00:00:00至2016-03-15 23:59:59) 按照每5分钟一条分组(0-5,5-10一共288组数据) 再对每组数据按照uid去重 最后求得每一组的数量 解决方案 SELECT FLOOR(UNIX_TIMESTAMP(addTime) / (5 * 60)) time, COUNT(DISTINCT uid) FRO

MySQL切分查询用法分析_Mysql

本文实例讲述了MySQL切分查询用法.分享给大家供大家参考,具体如下: 对于大查询有时需要'分而治之',将大查询切分为小查询: 每个查询功能完全一样,但只完成原来的一小部分,每次查询只返回一小部分结果集. 删除旧的数据就是一个很好地例子.定期清理旧数据时,如果一条sql涉及了大量的数据时,可能会一次性锁住多个表或行,耗费了大量的系统资源,却阻塞了其他很多小的但重要的查询.将一个大得DELETE语句切分为较小的查询时,可以尽量减少影响msql的性能,同时减少mysql复制造成的延迟. 例如,每个月

mysql慢查询日志分析实例

1.MySQL 慢查询日志分析 pt-query-digest分析慢查询日志 pt-query-digest –report slow.log 报告最近半个小时的慢查询: pt-query-digest –report –since 1800s slow.log 报告一个时间段的慢查询: pt-query-digest –report –since '2013-02-10 21:48:59′ –until '2013-02-16 02:33:50′ slow.log 报告只含select语句的慢

mysql日期查询sql语句总结(查询一天,查询一周,查询一个月的数据)

我的日期 首先我们获取到的日期格式是这样的:2009-2-12或者2009-3-3或者2009-10-12,我们在组合sql语句的时候可以这样:(分了三个例子)  代码如下 复制代码 @1select * from user where birthday>'2009-2-3' and birthday<'2009-4-3' 这样我们能够查到所有包括2009-2-3并且大于2009-2-3的所有的用户信息. @2如果我们是这样组合的  代码如下 复制代码 select * from user w

整理MySql常用查询语句(23种)_MsSql

废话不多了,直接贴代码了 一查询数值型数据: SELECT * FROM tb_name WHERE sum > 100;  查询谓词:>,=,<,<>,!=,!>,!<,=>,=< 二查询字符串 SELECT * FROM tb_stu WHERE sname = '小刘' SELECT * FROM tb_stu WHERE sname like '刘%' SELECT * FROM tb_stu WHERE sname like '%程序员' S

对MySQL慢查询日志进行分析的基本教程_Mysql

0.首先查看当前是否开启慢查询: (1)快速办法,运行sql语句 show VARIABLES like "%slow%" (2)直接去my.conf中查看. my.conf中的配置(放在[mysqld]下的下方加入) [mysqld] log-slow-queries = /usr/local/mysql/var/slowquery.log long_query_time = 1 #单位是秒 log-queries-not-using-indexes 使用sql语句来修改:不能按照m

MySQL 慢查询日志分析及可视化结果

MySQL 慢查询日志分析及可视化结果 MySQL 慢查询日志分析 pt-query-digest分析慢查询日志 pt-query-digest --report slow.log 报告最近半个小时的慢查询: pt-query-digest --report --since 1800s slow.log 报告一个时间段的慢查询: pt-query-digest --report --since '2013-02-10 21:48:59' --until '2013-02-16 02:33:50'

整理MySql常用查询语句(23种)

废话不多了,直接贴代码了 一查询数值型数据: SELECT * FROM tb_name WHERE sum > 100; 查询谓词:>,=,<,<>,!=,!>,!<,=>,=< 二查询字符串 SELECT * FROM tb_stu WHERE sname = '小刘' SELECT * FROM tb_stu WHERE sname like '刘%' SELECT * FROM tb_stu WHERE sname like '%程序员' SE

mysql-求一个Mysql语句 查询出当前周的数据按照天分组

问题描述 求一个Mysql语句 查询出当前周的数据按照天分组 SELECT DATE_FORMAT(uploadTime_beg%Y-%m-%d"") as time SUM(field01) as sumStatus1 SUM(field02) as sumStatus2 SUM(field03) as sumStatus3 SUM(field04) as sumStatus4 SUM(field05) as sumStatus5 FROM health_realdata WHERE