程序员社区

MySql时间查询

   每周第一天:

 select curdate(), date_add(curdate(),interval -weekday(curdate()) day) ;

 每月第一天 :

 select  curdate(), date_sub(curdate(),interval  day(curdate())-1 day) ;

 当前月的天数 :

 select datediff(date_add(curdate()-day(curdate())+1,interval 1 month ),DATE_ADD(curdate(),interval -day(curdate())+1 day)) from dual ; 

 任意一天转换为当月第一天 :

 select  date_add( " 时间字段",interval -day(create_time)+1 day) ;

 mysql查询本季度 :

今天
select * from "表名" where to_days("时间字段") = to_days(now());
7天
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 `表名` where QUARTER("时间字段")=QUARTER(now());
上季度数据:
select * from `表名` where QUARTER('时间字段')=QUARTER(DATE_SUB(now(),interval 1 QUARTER));
本年数据:
select * from `表名` where YEAR('时间字段')=YEAR(NOW());
上年数据:
select * from `表名` where year('时间字段')=year(date_sub(now(),interval 1 year));
当前这周的数据:
SELECT '字段' FROM '表名' WHERE YEARWEEK(date_format('时间字段',’%Y-%m-%d’)) = YEARWEEK(now());
上周的数据:
SELECT '字段' FROM '表名' WHERE YEARWEEK(date_format('时间字段',’%Y-%m-%d’)) = YEARWEEK(now())-1;
当前月份的数据:
select '字段' from '表名' where date_format('时间字段',’%Y-%m’)=date_format(now(),’%Y-%m’);
距离当前现在6个月的数据:
select '字段' from '表名' where '时间字段' between date_sub(now(),interval 6 month) and now();
上个月的数据:
select '字段' from '表名' where date_format('时间字段',’%Y-%m’)=date_format(DATE_SUB(curdate(), INTERVAL 1 MONTH),’%Y-%m’);
 

赞(0) 打赏
未经允许不得转载:IDEA激活码 » MySql时间查询

一个分享Java & Python知识的社区