mysql 查询 当天,本周, 指定周 ,最近n天的,当月,指定月,本年,上年...

-- 当天

1 select * from 表名 where to_days(字段名) = to_days(now());

2 select * from 表名 where  字段名 = 具体某天

3.select * from 表名 where date(date_format(字段名,'%Y-%m-%d')) = date_format(now(),'%Y-%m-%d');

-- 本周  yearweek()那周   date_format()格式化

SELECT * FROM 表名 WHERE YEARWEEK(date_format(字段名,'%Y-%m-%d')) = YEARWEEK(date_format(NOW(),'%Y-%m-%d') );

-- 指定周

SELECT *  FROM 表名 WHERE YEARWEEK(date_format(字段名,'%Y-%m-%d')) = YEARWEEK(date_format(指定日期,'%Y-%m-%d') );

-- 最近n天(必须用 now()  函数,用其他日期就不是最近几天) DATE_SUB()  间隔n天前的某个日期

SELECT * FROM 表名 where DATE_SUB(now(), INTERVAL n DAY) <= date(字段名)

-- 当月    date_format( 字段名, '%Y%m' ) 格式必须是这样

SELECT * FROM 表名 WHERE PERIOD_DIFF( date_format( NOW() , '%Y%m' ) , date_format( 字段名, '%Y%m' ) ) = 0

-- 上个月 (1 =1 表示上一个月,2 = 2 表示上两个月 ,依次类推)

SELECT * FROM 表名 WHERE PERIOD_DIFF( date_format( NOW() , '%Y%m' ) , date_format( 字段名, '%Y%m' ) ) = 1

-- 指定月

SELECT * FROM  表名 WHERE PERIOD_DIFF( date_format(指定, '%Y%m' ) , date_format( 字段名, '%Y%m' ) ) = 0

-- 当年

1. SELECT * FROM 表名 WHERE YEAR(date_format(字段名,'%Y-%m-%d')) = YEAR(date_format(NOW(),'%Y-%m-%d'));

2. SELECT YEAR(字段名),YEAR(NOW()) FROM spworklist WHERE YEAR(字段名) = YEAR(NOW());

-- 指定年

SELECT * FROM 表名 WHERE YEAR(date_format(字段名,'%Y-%m-%d')) = YEAR(date_format(指定日期,'%Y-%m-%d'));

例子

SELECT * FROM 表名 WHERE YEAR(date_format(字段名,'%Y-%m-%d')) = YEAR(date_format('2017-11-10','%Y-%m-%d'));












猜你喜欢

转载自blog.csdn.net/weixin_43239106/article/details/84674274