MYSQL 时间查询

SELECT CURDATE() AS 当前日期;
SELECT NOW() AS 当前时间;

 


SELECT DATE_FORMAT(CURDATE(),'%w') AS 当前周几;  
SELECT DATE_FORMAT( SUBDATE(CURDATE(),DATE_FORMAT(CURDATE(),'%w')-1), '%Y-%m-%d 00:00:00') AS 本周一;

select date_sub(curdate(),INTERVAL WEEKDAY(curdate()) + 1 DAY) 本周第一天(周天);

SELECT DATE_FORMAT( SUBDATE(CURDATE(),DATE_FORMAT(CURDATE(),'%w')-7), '%Y-%m-%d 23:59:59') AS 本周末;

select date_sub(curdate(),INTERVAL WEEKDAY(curdate()) - 5 DAY) 本周最后一天(周六);

select date_sub(curdate(),INTERVAL WEEKDAY(curdate()) + 8 DAY) 上周第一天(周天);

select date_sub(curdate(),INTERVAL WEEKDAY(curdate()) + 2 DAY) 上周最后一天(周六);

 


SELECT DATE_FORMAT(CURDATE(),'%Y-%m-01 00:00:00') AS 本月第一天; 

 

select date_add(curdate(), interval - day(curdate()) + 1 day) 本月第一天;
select last_day(curdate()) 本月最后一天;
select date_add(curdate()-day(curdate())+1,interval -1 month) 上月第一天;
select last_day(date_sub(now(),interval 1 month)) 上月最后一天;
select date_add(curdate()-day(curdate())+1,interval 1 month) 下月第一天;
select last_day(date_sub(now(),interval -1 month)) 下月最后一天;
select day(last_day(curdate())) 本月天数;

select date_sub(curdate(), interval 1 month) 上月今天的当前日期;
select unix_timestamp(date_sub(now(),interval 1 month)) 上月今天的当前时间(时间戳);
select datediff(curdate(), date_sub(curdate(), interval 1 month)) 获取当前时间与上个月之间的天数;

 

SELECT * FROM report WHERE create_time BETWEEN DATE_FORMAT(CURDATE(),'%Y-%m-01 00:00:00') AND NOW(); -- 本月数据
SELECT * FROM report WHERE DATE_FORMAT(create_time, '%Y%m') = DATE_FORMAT(CURDATE(), '%Y%m'); -- 本月数据

 

SELECT QUARTER(CURDATE()) AS 当前季度;
select concat(date_format(LAST_DAY(MAKEDATE(EXTRACT(YEAR FROM CURDATE()),1) + interval QUARTER(CURDATE())*3-3 month),'%Y-%m-'),'01') AS 本季度第一天;
select LAST_DAY(MAKEDATE(EXTRACT(YEAR FROM CURDATE()),1) + interval QUARTER(CURDATE())*3-1 month) AS 本季度最后一天;
select * from report where QUARTER(create_time)=QUARTER(now()); -- 本季度数据

 


select date_sub(curdate(), interval dayofyear(curdate())-1 day) 本年第一天;
SELECT curdate() - INTERVAL(dayofyear(curdate()) - 1) DAY 本年第一天;
select concat(year(curdate()),'-12-31') 本年最后一天;
select date_sub(curdate(), interval dayofyear(curdate()) day) 上年最后一天;
SELECT (curdate() - INTERVAL(dayofyear(curdate()) - 1) DAY) + INTERVAL 1 YEAR 下年第一天;

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值