There are many ways to query MySQL. The MySQL query introduced below is to query the data of this week, last week, this month, and last month. If you are interested in MySQL query, you may wish to take a look.
Query the current data of today
SELECT name,submittime FROM enterprise WHERE YEARWEEK(date_format(submittime,'%Y-%m-%d')) = date_format (now(), '%Y-%m-%d' ) ;
query Current week's data
SELECT name,submittime FROM enterprise WHERE YEARWEEK(date_format(submittime,'%Y-%m-%d')) = YEARWEEK(now()) ;
Query last week's data
SELECT name,submittime FROM enterprise WHERE YEARWEEK(date_format(submittime,'%Y-%m-%d')) = YEARWEEK(now())-1 ;
Query the data of the current month
select name,submittime from enterprise where date_format(submittime,'%Y-%m ')=date_format(now(),'%Y-%m'
select name,submittime from enterprise where submittime between date_sub(now(),interval 6 month) and now();
查询上个月的数据
select 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 last day of previous month
and first day of next month
############################
By default, the yearweek, WEEK (date) is every Sunday, as the start of the week.
Some start on Sunday, some start on Monday. In some cases, the weekly calculation starts from Saturday, and some data needs to be counted on a weekly basis. So which method is better?
select yearweek(now() - INTERVAL 1 DAY) Counts the week from week 1
select yearweek('2015-02-02 11:12:00' - INTERVAL 1 DAY)
############################
Taken from: http://hideto.javaeye.com/blog/255816
The first day of the current week:
select date_sub(curdate(),INTERVAL WEEKDAY(curdate()) + 1 DAY)
The last day of the current week:
select date_sub(curdate(),INTERVAL WEEKDAY(curdate()) - 5 DAY)
The first day of the previous week:
select date_sub(curdate(),INTERVAL WEEKDAY(curdate()) + 8 DAY)
Last day of the previous week:
select date_sub(curdate(),INTERVAL WEEKDAY(curdate()) + 2 DAY)
The first day of the first two weeks:
select date_sub(curdate(),INTERVAL WEEKDAY(curdate()) + 15 DAY)
The last day of the first two weeks:
select date_sub(curdate(),INTERVAL WEEKDAY(curdate()) + 9 DAY)
The first day of the current month:
SELECT concat(date_format(LAST_DAY(now()),'%Y-%m -'),'01')
当前month的最后一天:
SELECT LAST_DAY(now())
前一month的第一天:
SELECT concat(date_format(LAST_DAY(now() – interval 1 month),’%Y-%m-’),’01′)
前一month的最后一天:
SELECT LAST_DAY(now() – interval 1 month)
前两month的第一天:
SELECT concat(date_format(LAST_DAY(now() – interval 2 month),’%Y-%m-’),’01′)
前两month的最后一天:
SELECT LAST_DAY(now() – interval 2 month)
当前quarter的第一天:
select concat(date_format(LAST_DAY(MAKEDATE(EXTRACT(YEAR FROM CURDATE()),1) + interval QUARTER(CURDATE())*3-3 month),’%Y-%m-’),’01′)
当前quarter的最后一天:
select LAST_DAY(MAKEDATE(EXTRACT(YEAR FROM CURDATE()),1) + interval QUARTER(CURDATE())*3-1 month)
前一quarter的第一天:
select concat(date_format(LAST_DAY(MAKEDATE(EXTRACT(YEAR FROM CURDATE()),1) + interval QUARTER(CURDATE())*3-6 month),’%Y-%m-’),’01′)
前一quarter的最后一天:
select LAST_DAY(MAKEDATE(EXTRACT(YEAR FROM CURDATE()),1) + interval QUARTER(CURDATE())*3-4 month)
前两quarter的第一天:
select concat(date_format(LAST_DAY(MAKEDATE(EXTRACT(YEAR FROM CURDATE()),1) + interval QUARTER(CURDATE())*3-9 month),’%Y-%m-’),’01′)
前两quarter的最后一天:
select LAST_DAY(MAKEDATE(EXTRACT(YEAR FROM CURDATE()),1) + interval QUARTER(CURDATE())*3-7 month)
UNIX时间戳转换为日期用函数: FROM_UNIXTIME()
- select FROM_UNIXTIME(1156219870);
日期转换为UNIX时间戳用函数: UNIX_TIMESTAMP()
- Select UNIX_TIMESTAMP(’2006-11-04 12:23:00′);
########################