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&gt;=#{tj_start}
</if>
<if test="tj_end!=null and tj_end!=''">
AND submittime&lt;=#{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) &lt;= 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按日期进行统计的更多相关文章

  1. mysql按日期分组统计数据

    最近在做一个招聘网时,需要显示一个月内企业招聘信息的发布数量,按日期分组统计,刚开始是直接从源数据库表里面进行group by,但这样子就出现日期不连续的问题了,我想要的效果是,若当天没有数据,则显示 ...

  2. [MySQL] 按日期进行统计(前一天、本周、某一天)

    在mysql数据库中,常常会遇到统计当天的内容.例如,在user表中,日期字段为:log_time统计当天 sql语句为: select * from user where date(log_time ...

  3. (转载)MySql按日期进行统计(前一天、本周、某一天)

    (转载)http://www.yovisun.com/mysql-date-statistics.html 在mysql数据库中,常常会遇到统计当天的内容.例如,在user表中,日期字段为:log_t ...

  4. 记录一个mysql按日期分组统计的查询

    http://blog.csdn.net/llwan/article/details/7738991

  5. MySQL按日期分组并统计截止当前时间的总数(实例教程)

    MySQL按日期分组并统计截止当前时间的总数 建表语句 SET NAMES utf8mb4; ; -- ---------------------------- -- Table structure ...

  6. mysql生成日期的辅助表

    为了解决mysql按日期分组查询统计的时候,没有数据补0.可以生成连续的时间表格来辅助查询* 生成按天的数据 * 每一个小时为一个分段 生成如下辅助表 *代码如下 CREATE TABLE num ( ...

  7. Mysql 时间日期函数运用与总结

    Mysql 中的时间与日期常常会用到,但是每次都得找,这里结合工作日常总结一下. |--获取当前时间[正常时间] 1. MySQL 获得当前时间函数:current_timestamp, curren ...

  8. mysql插入日期 vs oracle插入日期

    今天做oracle日期插入的时候突然开始疑惑日期是如何插入的. 用框架久了,反而不自己做简单的工作了.比如插入. 通常,新建一个表对象,然后绑定数据,前端form提交,后端getModel后直接mod ...

  9. MySQL:日期函数、时间函数总结

    MySQL 获得当前日期时间 函数 获得当前日期+时间(date + time)函数:now() mysql> select now(); +---------------------+ | n ...

随机推荐

  1. ghost.py在代用JavaScript时的超时问题

    在写爬虫的时候,关于JavaScript的解析问题,我在网上找到的一个解决方案是使用ghost.py这个模块,他是一个基于webkit封装的一个客户端,可以用来解析动态页面.它的使用非常简单,它从2. ...

  2. centos下安装最新版本git(通过master分支下载最新版)

    centos6.7下安装最新版本git 本文参考:http://www.01happy.com/centos-install-latest-git/ 按照原博主所提供的思路安装可能会出现下列问题 解决 ...

  3. three.js 相机

    图形学中的相机定义了三维空间到二维屏幕的投影方式,根据投影方式的不同,相机可分为 正交投影相机 与 透视投影相机. 正交投影相机 : 近处.远处的物体大小尺寸保持一致,常适用于工程制图.建模软件,如C ...

  4. IdentityServer Topics(5)- 使用第三方登录

    ASP.NET Core有一个灵活的方式来处理外部认证. 这包括几个步骤. 如果您使用的是ASP.NET Identity,则许多底层技术细节对您而言都是隐藏的. 建议您还阅读Microsoft文档并 ...

  5. Python基础知识拾遗

    彻底搞清楚python字符编码 python的super函数

  6. echarts图表属性设置

    原地址:http://blog.csdn.net/she_lover/article/details/51448967theme = { // 全图默认背景 // backgroundColor: ‘ ...

  7. SPRINGBOOT 读书笔记

    Spring基础 Spring的发展 xml配置 注解配置 Java配置 Spring模块:核心容器 AOP 消息 web 数据访问集成 常用的:@Component @Service @Reposi ...

  8. 【Java学习笔记之一】java关键字及作用

    Java关键字及其作用 一. 总览: 访问控制 private protected public 类,方法和变量修饰符 abstract class extends final implements ...

  9. POJ 3662 Telephone Lines【Dijkstra最短路+二分求解】

    Telephone Lines Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 7214   Accepted: 2638 D ...

  10. CodeForces832-B. Petya and Exam

    补的若干年以前的题目,水题,太菜啦_(:з」∠)_    B. Petya and Exam time limit per test 2 seconds memory limit per test 2 ...