MySql时间查询

2年前 (2022) 程序员胖胖胖虎阿
184 0 0

   每周第一天:

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

版权声明:程序员胖胖胖虎阿 发表于 2022年9月20日 下午3:16。
转载请注明:MySql时间查询 | 胖虎的工具箱-编程导航

相关文章

暂无评论

暂无评论...