MySql按日期进行统计
1 数据库字段pk_time(Varchar)
当天的数据
SELECT * FROM 表 WHERE date(fk_time) = curdate();
当月的数据
SELECT *FROM 表 WHERE DATE_FORMAT(fk_time,'%Y%m')=DATE_FORMAT(CURDATE( ),'%Y%m')
昨天
SELECT * FROM 表名 WHERE TO_DAYS( NOW( ) ) - TO_DAYS( 时间字段名) <= 1
7天
SELECT * FROM 表名 where DATE_SUB(CURDATE(), INTERVAL 7 DAY) <= date(时间字段名)
近30天
SELECT * FROM 表名 where DATE_SUB(CURDATE(), INTERVAL 30 DAY) <= date(时间字段名)
本月
SELECT * FROM 表名 WHERE DATE_FORMAT( 时间字段名, '%Y%m' ) = DATE_FORMAT( CURDATE( ) , '%Y%m' )
上一月
SELECT * FROM 表名 WHERE PERIOD_DIFF( date_format( now( ) , '%Y%m' ) , date_format( 时间字段名, '%Y%m' ) ) =1
查询本季度数据
select * from `ht_invoice_information` where QUARTER(create_date)=QUARTER(now());
查询上季度数据
select * from `ht_invoice_information` where QUARTER(create_date)=QUARTER(DATE_SUB(now(),interval 1 QUARTER));
查询本年数据
select * from `ht_invoice_information` where YEAR(create_date)=YEAR(NOW());
查询上年数据
select * from `ht_invoice_information` where year(create_date)=year(date_sub(now(),interval 1 year));
查询当前这周的数据
SELECT name,submittime FROM enterprise WHERE YEARWEEK(date_format(submittime,'%Y-%m-%d')) = YEARWEEK(now());
查询上周的数据
SELECT name,submittime FROM enterprise WHERE YEARWEEK(date_format(submittime,'%Y-%m-%d')) = YEARWEEK(now())-1;
查询当前月份的数据
select name,submittime from enterprise where date_format(submittime,'%Y-%m')=date_format(now(),'%Y-%m')
查询距离当前现在6个月的数据
select name,submittime from enterprise where submittime between date_sub(now(),interval 6 month) and now();
2 时间段数据
id 为方法名,parameterType参数用map保存,resultType为返回对象 参数tj_start tj_end 提交开始和结束时间

<select id="方法名" parameterType="参数类型" resultType="返回类型">
select *from jw_order where 1=1
<if test="tj_start!= null and tj_start!=''">
AND submittime>=#{tj_start}
</if>
<if test="tj_end!=null and tj_end!=''">
AND submittime<=#{tj_end}
</if>
</select>

3 模糊查询sql(Mybatis)
<select id="方法" parameterType="参数类型" resultType="返回类型">
select *from 表名 where 1=1
AND 字段 LIKE CONCAT(CONCAT('%', #{参数}), '%')
</select>
MySql按日期进行统计(前一天、本周、某一天)

统计当天
sql语句为:
* user where date(log_time) = curdate();
curdate()默示当天日期
统计前一天
若是默示前一天的数据,则不克不及应用curdate()-1,因为当日期为月初时,curdate()-1 日期就不是上一个月的月末日期。
例如:今天是6月1日,理论上curdate()-1为5月31日,然则curdate()-1获得不是5月31日,而是6月0日。那么统计前一天的日期就不克不及应用curdate()-1了,mysql数据库又有一个新办法统计前一天的数据。
统计前一天的日记sql语句:
* bean where date(log_time) = date_sub(curdate(),interval 1 day);
括号中为当天时候的前一天,若是统计前几天就将括号中的’1’改成响应的天数。若是要算月或年,直接将day改为month或year即可
统计本周
请求: 统计从昨天开端统计前7天的日记包含昨天
* user where date(log_time) >= date_sub(curdate(),interval 7 day)
and date(log_time) <= date_sub(curdate(),interval 1 day)
在网上找的应用week统计一周信息,只能统计到5天的信息,不合适请求,所以改用这种办法。
统计某一天
统计汗青某一天的日记,将date_sub(curdate(),interval 0 day)函数中的curdate()调换为某一天的日期
比如:要统计2012-05-25日期的信息
date_sub(""2012-05-25"",interval 0 day)
关于date_sub()函数的例子:
今天是2013年5月20日。
date_sub(""2012-05-25"",interval 1 day) 默示 2012-05-24
date_sub(""2012-05-25"",interval 0 day) 默示 2012-05-25
date_sub(""2012-05-25"",interval -1 day) 默示 2012-05-26
date_sub(""2012-05-31"",interval -1 day) 默示 2012-06-01
date_sub(curdate(),interval 1 day) 默示 2013-05-19
date_sub(curdate(),interval -1 day) 默示 2013-05-21
date_sub(curdate(),interval 1 month) 默示 2013-04-20
date_sub(curdate(),interval -1 month) 默示 2013-06-20
date_sub(curdate(),interval 1 year) 默示 2012-05-20
date_sub(curdate(),interval -1 year) 默示 2014-05-20
如:
<!-- 分页查询订单个数 -->
<select id="queryOrderCountByCondition" resultClass="order">
select
count(*) as id
from
t_order_info<dynamic prepend="where">
<isNotNull prepend="and" property="companyId">
company_id = #companyId#
</isNotNull>
<isNotNull prepend="and" property="inMonth">
date_sub(CURDATE(), INTERVAL 1 MONTH) <= date(add_time)
</isNotNull>
<isNotNull prepend="and" property="productName">
id in (select id from t_order_info where id in(select order_id from t_order_product where product_id in(SELECT t_product.id FROM t_product where t_product.name=#productName#)))
</isNotNull>
<isNotNull prepend="and" property="orderDateBegin">
<![CDATA[ add_time >= #orderDateBegin#]]>
</isNotNull>
<isNotNull prepend="and" property="orderDateEnd">
<![CDATA[ add_time <= #orderDateEnd#]]>
</isNotNull>
</dynamic>
</select>
MySql按日期进行统计的更多相关文章
- mysql按日期分组统计数据
最近在做一个招聘网时,需要显示一个月内企业招聘信息的发布数量,按日期分组统计,刚开始是直接从源数据库表里面进行group by,但这样子就出现日期不连续的问题了,我想要的效果是,若当天没有数据,则显示 ...
- [MySQL] 按日期进行统计(前一天、本周、某一天)
在mysql数据库中,常常会遇到统计当天的内容.例如,在user表中,日期字段为:log_time统计当天 sql语句为: select * from user where date(log_time ...
- (转载)MySql按日期进行统计(前一天、本周、某一天)
(转载)http://www.yovisun.com/mysql-date-statistics.html 在mysql数据库中,常常会遇到统计当天的内容.例如,在user表中,日期字段为:log_t ...
- 记录一个mysql按日期分组统计的查询
http://blog.csdn.net/llwan/article/details/7738991
- MySQL按日期分组并统计截止当前时间的总数(实例教程)
MySQL按日期分组并统计截止当前时间的总数 建表语句 SET NAMES utf8mb4; ; -- ---------------------------- -- Table structure ...
- mysql生成日期的辅助表
为了解决mysql按日期分组查询统计的时候,没有数据补0.可以生成连续的时间表格来辅助查询* 生成按天的数据 * 每一个小时为一个分段 生成如下辅助表 *代码如下 CREATE TABLE num ( ...
- Mysql 时间日期函数运用与总结
Mysql 中的时间与日期常常会用到,但是每次都得找,这里结合工作日常总结一下. |--获取当前时间[正常时间] 1. MySQL 获得当前时间函数:current_timestamp, curren ...
- mysql插入日期 vs oracle插入日期
今天做oracle日期插入的时候突然开始疑惑日期是如何插入的. 用框架久了,反而不自己做简单的工作了.比如插入. 通常,新建一个表对象,然后绑定数据,前端form提交,后端getModel后直接mod ...
- MySQL:日期函数、时间函数总结
MySQL 获得当前日期时间 函数 获得当前日期+时间(date + time)函数:now() mysql> select now(); +---------------------+ | n ...
随机推荐
- 九九乘法表.py
# -*-coding:utf-8-*- i = 1 # 先设定第一个变量 while i <= 9: # 第一个循环开始 j = 1 while j <= i: # 第 ...
- 超市买苹果.py
# 定义苹果数量 price = 5 # 挑选苹果 weight = 4 # 计算金额 money = price * weight money -= 5 # 三个变量 print(type(1.5) ...
- 谈谈关键字new
1.在情人节那天,无意间看到空间有人说,没有对象就new一个,然后就可以........ 程序中我们常用到X a=new X(), new在这里是创建一个对象,也可以叫做创建一个实例,我们先谈谈后半部 ...
- 学习 node.js 搭建web服务器
开始 学习使用 node.js 首先完成搭建一个 web服务器.myweb.js var http = require('http'); var url = require('url'); var h ...
- Cain工具ARP欺骗攻击
OS:Win7工具:Cainhttp://pan.baidu.com/s/1xq9lW 密码:409z 网络:本机和被攻击电脑有线连接路由器. Cain是有名的局域网嗅探工具,有丰富的功能.比如可以解 ...
- Linux-RED HAT6.8扩容
项目快上线了,在准生产测试,遇到了一个问题,那就是Linux硬盘资源不够用了,这个问题是当时在装系统的时候,应该装机人员的失误造成的,具体如下: 这个报错原因就是硬盘资源不够用了,使用命令:df - ...
- Java与算法之(4) - 数字全排列
全排列是指n个数(或其他字符)所有可能的排列顺序,例如1 2 3三个数字的全排列是 1 2 3 1 3 2 2 1 3 2 3 1 3 1 2 3 2 1 那么问题来了,任意输入一个大于1的数字n,列 ...
- deeplearning.ai 改善深层神经网络 week1 深度学习的实用层面 听课笔记
1. 应用机器学习是高度依赖迭代尝试的,不要指望一蹴而就,必须不断调参数看结果,根据结果再继续调参数. 2. 数据集分成训练集(training set).验证集(validation/develop ...
- 1492: [NOI2007]货币兑换Cash
Description 小Y最近在一家金券交易所工作.该金券交易所只发行交易两种金券:A纪念券(以下简称A券)和 B纪念券(以下 简称B券).每个持有金券的顾客都有一个自己的帐户.金券的数目可以是一个 ...
- Is It A Tree?(并查集)(dfs也可以解决)
Is It A Tree? Time Limit:1000MS Memory Limit:10000KB 64bit IO Format:%I64d & %I64u Submi ...