MySQL日期查询:本周、本月、本季、本年

来源:互联网 发布:日本ip代理地址和端口 编辑:程序博客网 时间:2024/05/21 03:54

查询当天

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


查询昨天

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


查询一周

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 WEEKOFYEAR(create_date)=WEEKOFYEAR(NOW());


查询上周

select * from ht_invoice_information where create_date>=date_add(now(),interval -(8 + weekday(now())) day) and create_date<=date_add(now(),interval -(1 + weekday(now())) day);

或者

select * from `ht_invoice_information` where WEEKOFYEAR(create_date)=WEEKOFYEAR(DATE_SUB(now(),INTERVAL 1 week));


查询本月

select * from ht_invoice_information where MONTH(create_date)=MONTH(NOW()) and year(create_date)=year(now());


查询上月

select * from ht_invoice_information where create_date<=last_day(date_add(now(),interval -1 MONTH)) and create_date>=DATE_FORMAT(concat(extract(year_month from date_add(now(),interval -1 MONTH)),’01′),’%Y-%m-%d’);

或者

select * from `ht_invoice_information` where MONTH(create_date)=MONTH(DATE_SUB(NOW(),interval 1 month))

and year(create_date)=year(now());


查询本季度

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));

阅读全文
0 0