首页 热点资讯 义务教育 高等教育 出国留学 考研考公
您的当前位置:首页正文

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

2023-11-11 来源:花图问答

今天

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(), 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

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

标签:_for   mysql   字段   from   int   curd   rom   时间   date()   

小编还为您整理了以下内容,可能对您也有帮助:

MYSQL查询语句问题 查询当月和上一月的查询语句怎么写?

select
*
from
shipmentlist,shipmentscrib
where
(shipmentlist.shipmentlistno=shipmentscrib.shipmentlistno)
and (year(shipmentlist.shipmentdate)=year(now()))
and (month(shipmentlist.shipmentdate)=month(now())
or month(shipmentlist.shipmentdate)=month(now())-1 )
ORDER BY shipmentdate DESC

格式化了一下你的SQL,分析一下。
假如今天是 2012年1月1日。
那么上面的条件。
将变为
year = 2012 and month = 1 OR month = 0

其实,对于 查询 当月和上一月
相当于
shipmentlist.shipmentdate >= 上月的1号
AND shipmentlist.shipmentdate < 下月的1号

LAST_DAY(NOW()) 可以获取 本月的最后一天.

DATE_ADD( LAST_DAY(NOW()) INTERVAL 1 DAY ) 可以获取下月第一天。

DATE_SUB ( DATE_ADD( LAST_DAY(NOW()) INTERVAL 1 DAY ) INTERVAL 2 MONTH ) 可以获取上月的1号
(也就是用 下月的1号 减少2个月,从而获取 上月的1号)

最后 SQL 修改为:

select
*
from
shipmentlist,shipmentscrib
where
(shipmentlist.shipmentlistno=shipmentscrib.shipmentlistno)
and shipmentlist.shipmentdate >= DATE_SUB ( DATE_ADD( LAST_DAY(NOW()) INTERVAL 1 DAY ) INTERVAL 2 MONTH )
AND shipmentlist.shipmentdate < DATE_ADD( LAST_DAY(NOW()) INTERVAL 1 DAY )
ORDER BY shipmentdate DESC

MYSQL查询语句问题 查询当月和上一月的查询语句怎么写?

select
*
from
shipmentlist,shipmentscrib
where
(shipmentlist.shipmentlistno=shipmentscrib.shipmentlistno)
and (year(shipmentlist.shipmentdate)=year(now()))
and (month(shipmentlist.shipmentdate)=month(now())
or month(shipmentlist.shipmentdate)=month(now())-1 )
ORDER BY shipmentdate DESC

格式化了一下你的SQL,分析一下。
假如今天是 2012年1月1日。
那么上面的条件。
将变为
year = 2012 and month = 1 OR month = 0

其实,对于 查询 当月和上一月
相当于
shipmentlist.shipmentdate >= 上月的1号
AND shipmentlist.shipmentdate < 下月的1号

LAST_DAY(NOW()) 可以获取 本月的最后一天.

DATE_ADD( LAST_DAY(NOW()) INTERVAL 1 DAY ) 可以获取下月第一天。

DATE_SUB ( DATE_ADD( LAST_DAY(NOW()) INTERVAL 1 DAY ) INTERVAL 2 MONTH ) 可以获取上月的1号
(也就是用 下月的1号 减少2个月,从而获取 上月的1号)

最后 SQL 修改为:

select
*
from
shipmentlist,shipmentscrib
where
(shipmentlist.shipmentlistno=shipmentscrib.shipmentlistno)
and shipmentlist.shipmentdate >= DATE_SUB ( DATE_ADD( LAST_DAY(NOW()) INTERVAL 1 DAY ) INTERVAL 2 MONTH )
AND shipmentlist.shipmentdate < DATE_ADD( LAST_DAY(NOW()) INTERVAL 1 DAY )
ORDER BY shipmentdate DESC

MYSQL怎么查询数据今天、昨天的数据?

SELECT * FROM 表 DATE(createtime) = (php) DATE("Y-m-d")

SELECT * FROM 表 DATE(createtime) = (php) DATE("Y-m-d",strtotime('-1day'))

等号后面是php函数,追问还是不行,数据库里的时间格式:2012-12-04 23:20:07
用PHP执行SQL语句,等于当天的数据返回为0,现在怎么办呢,请教了

MYSQL怎么查询数据今天、昨天的数据?

SELECT * FROM 表 DATE(createtime) = (php) DATE("Y-m-d")

SELECT * FROM 表 DATE(createtime) = (php) DATE("Y-m-d",strtotime('-1day'))

等号后面是php函数,追问还是不行,数据库里的时间格式:2012-12-04 23:20:07
用PHP执行SQL语句,等于当天的数据返回为0,现在怎么办呢,请教了

mysql 中如何查询已过七天的记录??

mysql中如何查询最近24小时、
where visittime >= NOW() - interval 1 hour;
昨天、
where visittime between CURDATE()-interval 1 day and CURDATE();
最近7天、
where visittime between CURDATE()-interval 7 day ;
上周、
where week(visittime)= week(CURDATE()-interval 7 day )
and year(visittime)=year(CURDATE()-interval 7 day )
最近30天、
where visittime between CURDATE()-interval 30 day ;

mysql 中如何查询已过七天的记录??

mysql中如何查询最近24小时、
where visittime >= NOW() - interval 1 hour;
昨天、
where visittime between CURDATE()-interval 1 day and CURDATE();
最近7天、
where visittime between CURDATE()-interval 7 day ;
上周、
where week(visittime)= week(CURDATE()-interval 7 day )
and year(visittime)=year(CURDATE()-interval 7 day )
最近30天、
where visittime between CURDATE()-interval 30 day ;

MYSQL查询一周内的数据(最近7天的)怎么写

select * from wap_content where week(created_at) = week(now)

如果要严格要求是某一年的,那可以这样

查询一天:

select * from table where to_days(column_time) = to_days(now());

select * from table where date(column_time) = curdate();

查询一周:

select * from table where DATE_SUB(CURDATE(), INTERVAL 7 DAY) <= date(column_time);

查询一个月:

select * from table where DATE_SUB(CURDATE(), INTERVAL INTERVAL 1 MONTH) <= 

date(column_time);

查询一年:

select * from table  where DATE_SUB(CURDATE(), INTERVAL 1 YEAR) <= date(column_time);

扩展资料

mysql查询最近7天的数据:

1,(以当天为起点)

SELECT * FROM tb_equity e where DATE_SUB(CURDATE(), INTERVAL 6 DAY) <= 

date(createdate)

2,(以数据库最新的时间最为最近的一天)

SELECT * FROM tb_equity e where createdate > DATE_ADD((select createdate from tb_equity 

ORDER BY createdate DESC limit 1) ,INTERVAL -7 day)

and (select createdate from tb_equity ORDER BY createdate DESC limit 1) >= createdate

3,sql查询表中的重复数据

select * from 表名 where 字段名 in (select 字段名 from 表名 group by 字段名 HAVING COUNT(*) 

> 1) order by 表名

参考资料来源:百度百科 - 结构化查询语言

参考资料来源:百度百科 - mySQL (关系型数据库管理系统)

参考资料来源:百度百科 - select (Linux 网络编程)

PHP+mysql 查询 今天,昨天,最近7天的数据?

今天

select * from 表名 where mytime(时间字段名) = mytime(now());

昨天

select * from 表名 where mytime( now( ) ) - mytime( 时间字段名) <= 1

7天

select * from 表名 where date_sub(cur(), interval(7 day <= date(时间字段名)

显示全文