mysql日期时间处理

前提是你 提交于 2020-02-11 11:52:49
 

获得当前周的周一到周日

select subdate(curdate(),date_format(curdate(),'%w')-1)//获取当前日期在本周的周一
select subdate(curdate(),date_format(curdate(),'%w')-7)//获取当前日期在本周的周日

 

数据库字段为int 那样where条件这样写:

FROM_UNIXTIME(a.visit_time, '%Y-%m-%d') = subdate(   curdate(),   date_format(curdate(), '%w') - 7

-- 当天


where to_days(时间字段名) = to_days(now());
-- 本周

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


-- 最近7天


SELECT * FROM  表名  where date_sub(curdate(), INTERVAL 7 DAY) <= date (时间字段);


-- 本月


SELECT * FROM  表名 where date_format(时间字段, '%Y%m') = date_format(curdate() , '%Y%m');


-- 最近30天


SELECT * FROM  表名 WHERE date_sub(curdate(), INTERVAL 30 DAY) <= date(时间字段);


-- 上一月



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

-- 本季度

SELECT * FROM 表名  WHERE QUARTER(create_date)=QUARTER(now());
 

查询上季度数据



=QUARTER(DATE_SUB(now(),interval 1 QUARTER));

查询本年数据



 YEAR(create_date)=YEAR(NOW());

查询上年数据



 year(create_date)=year(date_sub(now(),interval 1 year));
 

查询上周的数据



 YEARWEEK(date_format(submittime,'%Y-%m-%d')) = YEARWEEK(now())-1;

查询上个月的数据



复制代码
 
 date_format(submittime,'%Y-%m')=date_format(DATE_SUB(curdate(), INTERVAL 1 MONTH),'%Y-%m')

 DATE_FORMAT(pudate,'%Y%m') = DATE_FORMAT(CURDATE(),'%Y%m') ; 
 WEEKOFYEAR(FROM_UNIXTIME(pudate,'%y-%m-%d')) = WEEKOFYEAR(now()) 

MONTH(FROM_UNIXTIME(pudate,'%y-%m-%d')) = MONTH(now()) 

 YEAR(FROM_UNIXTIME(pudate,'%y-%m-%d')) = YEAR(now()) and MONTH(FROM_UNIXTIME(pudate,'%y-%m-%d')) = MONTH(now()) 

between  上月最后一天  and 下月第一天 
 
复制代码
 

查询距离当前现在6个月的数据



 submittime between date_sub(now(),interval 6 month) and now();
 转载自:https://www.cnblogs.com/zuochuang/p/7985890.html
 
 

获得当前周的周一到周日

select subdate(curdate(),date_format(curdate(),'%w')-1)//获取当前日期在本周的周一
select subdate(curdate(),date_format(curdate(),'%w')-7)//获取当前日期在本周的周日

 

数据库字段为int 那样where条件这样写:

FROM_UNIXTIME(a.visit_time, '%Y-%m-%d') = subdate(   curdate(),   date_format(curdate(), '%w') - 7

-- 当天


where to_days(时间字段名) = to_days(now());
-- 本周

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


-- 最近7天


SELECT * FROM  表名  where date_sub(curdate(), INTERVAL 7 DAY) <= date (时间字段);


-- 本月


SELECT * FROM  表名 where date_format(时间字段, '%Y%m') = date_format(curdate() , '%Y%m');


-- 最近30天


SELECT * FROM  表名 WHERE date_sub(curdate(), INTERVAL 30 DAY) <= date(时间字段);


-- 上一月



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

-- 本季度

SELECT * FROM 表名  WHERE QUARTER(create_date)=QUARTER(now());
 

查询上季度数据



=QUARTER(DATE_SUB(now(),interval 1 QUARTER));

查询本年数据



 YEAR(create_date)=YEAR(NOW());

查询上年数据



 year(create_date)=year(date_sub(now(),interval 1 year));
 

查询上周的数据



 YEARWEEK(date_format(submittime,'%Y-%m-%d')) = YEARWEEK(now())-1;

查询上个月的数据



复制代码
 
 date_format(submittime,'%Y-%m')=date_format(DATE_SUB(curdate(), INTERVAL 1 MONTH),'%Y-%m')

 DATE_FORMAT(pudate,'%Y%m') = DATE_FORMAT(CURDATE(),'%Y%m') ; 
 WEEKOFYEAR(FROM_UNIXTIME(pudate,'%y-%m-%d')) = WEEKOFYEAR(now()) 

MONTH(FROM_UNIXTIME(pudate,'%y-%m-%d')) = MONTH(now()) 

 YEAR(FROM_UNIXTIME(pudate,'%y-%m-%d')) = YEAR(now()) and MONTH(FROM_UNIXTIME(pudate,'%y-%m-%d')) = MONTH(now()) 

between  上月最后一天  and 下月第一天 
 
复制代码
 

查询距离当前现在6个月的数据



 submittime between date_sub(now(),interval 6 month) and now();
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!