[ mysql ] 根据时间查询有效数据
2017-09-20 10:22
609 查看
查询距离当前时间 分钟expireMin 到 expireMinEnd内数据
时间的参数只需要修改除数即刻 60 表示一分钟60s
查询大于七天的数据并设置为过期状态
时间的参数只需要修改除数即刻 3600*24 表示一天24小时,每小时3600s
查询今日数据
查询当前天每小时数据
查询当前月每天的数据
查询当前年每个月的数据
参考:
1、mysql查询每天每周每月每年的数据方法
2、mysql 查询今天、昨天、上月、本月的数据
3、mysql查询今天、昨天、7天、近30天、本月、上一月 数据
时间的参数只需要修改除数即刻 60 表示一分钟60s
SELECT dis.* FROM (SELECT *, ( UNIX_TIMESTAMP(gmt_deadline) - UNIX_TIMESTAMP(NOW()) ) / 60 AS m FROM T_DISPATCH) dis LEFT JOIN T_RECV_REPORT rec on dis.src_id = rec.rep_id WHERE dis.m <![CDATA[ >= ]]> #{expireMin} AND dis.m <![CDATA[ <= ]]> #{expireMinEnd} AND dis.disp_type=2 AND dis.disp_state=0 AND rec.rep_way=1
查询大于七天的数据并设置为过期状态
时间的参数只需要修改除数即刻 3600*24 表示一天24小时,每小时3600s
UPDATE T_APOLLO_MSG_CACHE SET is_expired = 1 WHERE msg_id IN (SELECT msg.msg_id FROM (SELECT *, ( UNIX_TIMESTAMP(NOW()) - UNIX_TIMESTAMP(gmt_update) ) / 3600 / 24 AS d FROM T_APOLLO_MSG_CACHE) msg WHERE msg.is_send = 0 AND msg.recieve_user_token =#{token} AND msg.d > #{validDay}) ;
查询今日数据
select COUNT(1) from T_DISPATCH WHERE TO_DAYS(gmt_update) = TO_DAYS(NOW());
实际案例
resultMappublic class StatItem { private String unit; private Integer number; public String getUnit() { return unit; } public StatItem setUnit(String unit) { this.unit = unit; return this; } public Integer getNumber() { return number; } public StatItem setNumber(Integer number) { this.number = number; return this; } } <resultMap id="statItem" type="cn.showclear.utio.web.pojo.vo.StatItem"> <result column="unit" property="unit" jdbcType="VARCHAR"/> <result column="number" property="number" jdbcType="INTEGER"/> </resultMap>
查询当前天每小时数据
<!--当天/小时--> <select id="statDispatchInDayWithDispType" resultMap="statItem"> SELECT HOUR(dis.gmt_update) AS unit, COUNT(1) AS number FROM T_DISPATCH dis WHERE TO_DAYS(dis.gmt_update) = TO_DAYS(NOW()) AND dis.disp_type = #{dispType} GROUP BY HOUR(dis.gmt_update) ORDER BY HOUR(dis.gmt_update) </select>
查询当前月每天的数据
<!--当前月/每天--> <select id="statDispatchInMonthWithDispType" resultMap="statItem"> SELECT COUNT(1) AS number, DATE_FORMAT(dis.gmt_update, '%Y-%m-%d') AS unit FROM T_DISPATCH dis WHERE DATE_FORMAT(dis.gmt_update, '%Y%m') = DATE_FORMAT(CURDATE(), '%Y%m') AND dis.disp_type = #{dispType} GROUP BY DATE_FORMAT(dis.gmt_update, '%Y-%m-%d') </select>
查询当前年每个月的数据
<!--当前年/每月--> <select id="statDispatchInYearWithDispType" resultMap="statItem"> SELECT COUNT(1) AS number, DATE_FORMAT(dis.gmt_update, '%Y-%m') AS unit FROM T_DISPATCH dis WHERE DATE_FORMAT(dis.gmt_update, '%Y') = DATE_FORMAT(CURDATE(), '%Y') AND dis.disp_type = #{dispType} GROUP BY MONTH(dis.gmt_update) </select>
参考:
1、mysql查询每天每周每月每年的数据方法
2、mysql 查询今天、昨天、上月、本月的数据
3、mysql查询今天、昨天、7天、近30天、本月、上一月 数据
相关文章推荐
- MySQL——根据某时间点查询其前后数据记录并正序输出到TXT文件
- mysql根据时间戳查询数据
- mysql根据时间戳查询指定日期内数据
- mysql根据时间查询前一天数据
- mysql根据时间戳查询指定日期内数据
- mysql中查询时间为空的数据
- MYsql 查询 查询当前月份的数据(时间 查询)
- sql根据时间查询数据
- 根据用户输入的时间查询那天的数据
- mysql的sql语句中直接计算时间 查询昨天 一周前 一月前 一年前的数据的方法
- Dynamics CRM2016 Web Api之根据时间查询数据
- bmob根据时间排序分页查询多条数据
- php、mysql查询当天,查询本周,查询本月的数据实例(字段是时间戳)
- mybatis查询mysql的datetime类型数据时间差了14小时
- mysql根据需要的时间进行查询
- MySQL在插入90万条数据消耗的时间以及查询90万条数据时的性能优化
- mysql中根据今天,昨天,一周,一月等查询数据
- MySQL 按照日期格式查询带有时间戳数据
- Mysql根据查询数据自动生成行号
- Dynamics CRM2016 Web Api之根据时间查询数据