各位用户为了找寻关于mysql 查询当天、本周,本月,上一个月的数据的资料费劲了很多周折。这里教程网为您整理了关于mysql 查询当天、本周,本月,上一个月的数据的相关资料,仅供查阅,以下为您介绍关于mysql 查询当天、本周,本月,上一个月的数据的详细内容
今天
? 1select
*
from
表名
where
to_days(时间字段名) = to_days(now());
昨天
? 1SELECT
*
FROM
表名
WHERE
TO_DAYS( NOW( ) ) - TO_DAYS( 时间字段名) <= 1
近7天
? 1SELECT
*
FROM
表名
where
DATE_SUB(CURDATE(), INTERVAL 7
DAY
) <=
date
(时间字段名)
近30天
? 1SELECT
*
FROM
表名
where
DATE_SUB(CURDATE(), INTERVAL 30
DAY
) <=
date
(时间字段名)
本月
? 1SELECT
*
FROM
表名
WHERE
DATE_FORMAT( 时间字段名,
'%Y%m'
) = DATE_FORMAT( CURDATE( ) ,
'%Y%m'
)
上一月
? 1SELECT
*
FROM
表名
WHERE
PERIOD_DIFF( date_format( now( ) ,
'%Y%m'
) , date_format( 时间字段名,
'%Y%m'
) ) =1
查询本季度数据
? 1select
*
from
`ht_invoice_information`
where
QUARTER(create_date)=QUARTER(now());
查询上季度数据
? 1select
*
from
`ht_invoice_information`
where
QUARTER(create_date)=QUARTER(DATE_SUB(now(),interval 1 QUARTER));
查询本年数据
? 1select
*
from
`ht_invoice_information`
where
YEAR
(create_date)=
YEAR
(NOW());
查询上年数据
? 1select
*
from
`ht_invoice_information`
where
year
(create_date)=
year
(date_sub(now(),interval 1
year
));
查询当前这周的数据
? 1SELECT
name
,submittime
FROM
enterprise
WHERE
YEARWEEK(date_format(submittime,
'%Y-%m-%d'
)) = YEARWEEK(now());
查询上周的数据
? 1SELECT
name
,submittime
FROM
enterprise
WHERE
YEARWEEK(date_format(submittime,
'%Y-%m-%d'
)) = YEARWEEK(now())-1;
查询上个月的数据
? 1 2 3 4 5 6select
name
,submittime
from
enterprise
where
date_format(submittime,
'%Y-%m'
)=date_format(DATE_SUB(curdate(), INTERVAL 1
MONTH
),
'%Y-%m'
)
select
*
from
user
where
DATE_FORMAT(pudate,
'%Y%m'
) = DATE_FORMAT(CURDATE(),
'%Y%m'
) ;
select
*
from
user
where
WEEKOFYEAR(FROM_UNIXTIME(pudate,
'%y-%m-%d'
)) = WEEKOFYEAR(now())
select
*
from
user
where
MONTH
(FROM_UNIXTIME(pudate,
'%y-%m-%d'
)) =
MONTH
(now())
select
*
from
user
where
YEAR
(FROM_UNIXTIME(pudate,
'%y-%m-%d'
)) =
YEAR
(now())
and
MONTH
(FROM_UNIXTIME(pudate,
'%y-%m-%d'
)) =
MONTH
(now())
select
*
from
user
where
pudate
between
上月最后一天
and
下月第一天
查询当前月份的数据
? 1select
name
,submittime
from
enterprise
where
date_format(submittime,
'%Y-%m'
)=date_format(now(),
'%Y-%m'
)
查询距离当前现在6个月的数据
? 1select
name
,submittime
from
enterprise
where
submittime
between
date_sub(now(),interval 6
month
)
and
now();
PS:下面看下mysql如何查询当天信息?
原来不是太熟悉SQL查询语句,什么都是用到了再去查去找,还好网络提供给我们很多支持。今天又用到了一个语句,一时间真想不出怎么解决,到网上看了看,感觉就有一个,怎么那么简单啊。需要积累的东西真是太多了。
今天就把我这个简单的问题记录下来吧!算是一个积累:
mysql查询当天的所有信息:
? 1select
*
from
test
where
year
(regdate)=
year
(now())
and
month
(regdate)=
month
(now())
and
day
(regdate)=
day
(now())
这个有一些繁琐,还有简单的写法:
? 1select
*
from
table
where
date
(regdate) = curdate();
date()函数获取日期部分, 扔掉时间部分,然后与当前日期比较即可
原文链接:https://www.cnblogs.com/benefitworld/p/5832897.html