MySQL查询昨天、今天、7天、近30天、本月、上一月数据

在开发或者统计时,我们可能需要统计某个表的数据。比如:查看今天新增的文章、计算本月新增的用户数等。这种类似的需求会有很多,也会很常见,可以使用sql的技巧来完成这些工作。我把用到的一些sql语句做了总结,希望能够给大家提供一些帮助,同时也欢迎大家评论或者留言补充。

#===============================================

#昨天

SELECT * FROM 表名 WHERE TO_DAYS( NOW( ) ) - TO_DAYS( 时间字段名) <= 1

#今天

SELECT * FROM 表名 WHERE TO_DAYS(时间字段名) = TO_DAYS(NOW());

#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 表名 WHERE QUARTER(时间字段名 )=QUARTER(NOW ());

#查询上季度数据

SELECT * FROM 表名 WHERE QUARTER(时间字段名 )=QUARTER(DATE_SUB(NOW (),INTERVAL 1 QUARTER));

#查询本年数据

SELECT * FROM 表名 WHERE  YEAR(时间字段名 )=YEAR(NOW());

#查询上年数据

SELECT * FROM 表名 WHERE YEAR (时间字段名 )=YEAR (DATE_SUB (NOW (),INTERVAL 1 YEAR ));

#=========================================================

#查询当前这周的数据

SELECT * FROM 表名 WHERE  YEARWEEK(DATE_SUB (时间字段名 ,‘%Y-%m-%d‘)) = YEARWEEK(NOW ());

#查询上周的数据

SELECT * FROM 表名 WHERE  YEARWEEK(DATE_SUB (时间字段名 ,‘%Y-%m-%d‘)) = YEARWEEK(NOW ())-1;

#查询当前月份的数据

SELECT * FROM 表名 WHERE  DATE_SUB (时间字段名 ,‘%Y-%m‘)=DATE_SUB (NOW (),‘%Y-%m‘)

#查询距离当前现在6个月的数据

SELECT * FROM 表名 WHERE 时间字段名 BETWEEN DATE_SUB (NOW (),INTERVAL 6 MONTH) ANDNOW ();

#查询上个月的数据

SELECT * FROM 表名 WHERE  DATE_SUB (时间字段名 ,‘%Y-%m‘)=DATE_SUB (DATE_SUB(CURDATE(), INTERVAL 1 MONTH),‘%Y-%m‘)

文章同步发布在朗度云网站,传送门:

http://www.wolfbe.com/detail/201608/291.html

时间: 2024-12-14 18:11:38

MySQL查询昨天、今天、7天、近30天、本月、上一月数据的相关文章

mysql查询今天,昨天,近7天,近30天,本月,上一月数据的方法(摘录)

mysql查询今天,昨天,近7天,近30天,本月,上一月数据的方法分析总结: 话说有一文章表article,存储文章的添加文章的时间是add_time字段,该字段为int(5)类型的,现需要查询今天添加的文章总数并且按照时间从大到小排序,则查询语句如下: select * from `article` where date_format(from_UNIXTIME(`add_time`),'%Y-%m-%d') = date_format(now(),'%Y-%m-%d'); 或者: selec

mysql查询今天,昨天,近7天,近30天,本月,上一月数据

近期项目中用到了查询当月数据记录的功能,最初的想法是在逻辑业务里构造好时间段进行查询,当写sql语句时感觉挺麻烦.所以就到网上搜索了一下,看看是不是能有简单的方法.果然.网络资源非常强大.以下结合我的项目表来把mysql查询今天,昨天,近7天,近30天,本月,上一月数据的sql语句记录一下. 有一张ad_proTrack_t 表.追踪产品时间字段为crt_time 查询今天的信息记录: select * from ad_proTrack_t where to_days(crt_time) = t

板邓:mysql查询今天,昨天,近7天,近30天,本月,上一月数据的方法

mysql查询今天,昨天,近7天,近30天,本月,上一月数据的方法分析总结: 话说有一文章表article,存储文章的添加文章的时间是add_time字段,该字段为int(5)类型的,现需要查询今天添加的文章总数并且按照时间从大到小排序,则查询语句如下: select * from `article` where date_format(from_UNIXTIME(`add_time`),’%Y-%m-%d’) = date_format(now(),’%Y-%m-%d’); 或者: selec

mysql查询今天,昨天,近7天,近30天,本月,上一月数据的SQL

原文:http://www.open-open.com/code/view/1423207309170 select * from ad_proTrack_t where to_days(crt_time) = to_days(now()); //今天做测试的时候调用到了这句sql,发现不是想要的结果. 经过尝试发现,to_days函数括号内的'时间字段'不能加引号,加引号的转换后为NULL 查询昨天的信息记录: select * from ad_proTrack_t where to_days

转 mysql 中sql 语句查询今天、昨天、7天、近30天、本月、上一月 数据

转自 http://blog.csdn.net/ve_love/article/details/19685399 转 mysql 中sql 语句查询今天.昨天.7天.近30天.本月.上一月 数据

mysql查询今天、昨天、7天、近30天、本月、上一月 数据

今天 select * from 表名 where to_days(时间字段名) = to_days(now()); 昨天 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()

Mysql查询今天、昨天、7天、近30天、本月、上一月数据

今天 SELECT * FROM 表名 WHERE TO_DAYS(时间字段名) = TO_DAYS(now()); 昨天 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()

mysql查询昨天 一周前 一月前 一年前的数据

mysql 昨天 一周前 一月前 一年前的数据 这里主要用到了DATE_SUB, 参考如下 代码如下: SELECT * FROM yh_contentwhere inputtime>DATE_SUB(CURDATE(), INTERVAL 1 DAY)where inputtime>DATE_SUB(CURDATE(), INTERVAL 1 WEEK)where inputtime>DATE_SUB(CURDATE(), INTERVAL 1 MONTH)where inputtim

mysql 查询昨天,今天的数据

今天的数据 SELECT * FROM `statements` WHERE DATE_FORMAT( FROM_UNIXTIME( `happen_time` ) , '%Y-%m-%d' ) = DATE_FORMAT( NOW( ) , '%Y-%m-%d' ) 昨天的数据 SELECT * FROM statements where `happen_time`>UNIX_TIMESTAMP(DATE_SUB(CURDATE(), INTERVAL 1 DAY))