问题:
今天第一次接触报表,各种对时间的需求联合查询,相当棘手,如下图需求
于是,各种搜查相关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