mysql时间字段相关需求查询

问题:

     今天第一次接触报表,各种对时间的需求联合查询,相当棘手,如下图需求

      

于是,各种搜查相关mysql的时间sql查询语句并整理

1.查询今天时间/日期/

select now();      
select Date(NOW());

2.查询当前月份/当前月份第一天/上个月的最后一天

SELECT MONTH(NOW()) time;

SELECT concat(date_format(LAST_DAY(now()),'%Y-%m-'),'01') time;

select date_sub(date_sub(date_format(now(),'%y-%m-%d'),interval extract( 
day from now()) day),interval 0 month) as date;

3.列出本月月初到现在所有日期

SELECT DISTINCT date_format(
 DATE_ADD(
  (select date_sub(date_sub(date_format(now(),'%y-%m-%d'),interval extract( 
  day from now()) day),interval 0 month) as date), INTERVAL id DAY),'%Y-%m-%d') AS datetime  
 FROM '表名' zt WHERE    //随便查询一个表
  DATE_ADD((select date_sub(date_sub(date_format(now(),'%y-%m-%d'),interval extract( 
  day from now()) day),interval 0 month) as date),INTERVAL id DAY) <= (select Date(NOW()))

4.和其它依靠时间字段查询结果的表拼接结果时,用left join关键字

select * from 
   (select  *  结果1) as a
   left join
   (select * 结果2) as b
  on a.datetime =b.time

发布了193 篇原创文章 · 获赞 30 · 访问量 11万+

猜你喜欢

转载自blog.csdn.net/yiye2017zhangmu/article/details/101521458