1. 程式人生 > 實用技巧 >MySQL 常見時間獲取整理(當日、當月、當年、上一日、上一月、上一年,當月第一天,當年第一天等等)

MySQL 常見時間獲取整理(當日、當月、當年、上一日、上一月、上一年,當月第一天,當年第一天等等)

當前時間

SELECT now(); //當前時間,格式2020-09-02 16:00:02
SELECT curdate(); //當前日期,格式2020-09-02
SELECT date_format(now(),'%Y-%m-%d'); //當前日期,格式2020-09-02

當月

select date_add(curdate(),interval -day(curdate())+1 day) ; //當月第一天,例如2020-09-01
select date_sub(date_sub(date_format(now(),'%y-%m-%d'),interval extract(day from now())-1 day),interval 0
month); 當月第一天,格式2020-09-01 select last_day(curdate());//當月最後一天,格式2020-09-30 select day(curdate()); //當月已過了幾天,格式整數,例如2 select day(date_add( date_add(curdate(),interval 1 month),interval -day(curdate()) day )); //當前月天數(先加一個月,再減今天是第幾天,得到當前月的最後一天,最後求最後一天是幾號)

時間加減

select date_add(NOW(), interval 1 MONTH); //下個月當前時間,格式2020-
08-02 16:00:02 select date_sub(NOW(), interval 1 MONTH); //上個月當前時間,格式2020-10-02 16:00:02 select date_add(curdate() - day(curdate()) +1,interval 1 month ); //下個月的第一天,格式2020-10-01 select date_sub(curdate() - day(curdate()) +1,interval 1 month); //上個月的第一天,格式2020-08-01 select date_sub(date_sub(date_format(now(),'%y-%m-%d'),interval extract(day
from now())-1 day),interval 1 month); //上個月的第一天,格式2020-10-01 select date_sub(date_sub(date_format(now(),'%y-%m-%d'),interval extract(day from now()) day),interval 0 month) as date; //上個月的最後一天,格式2020-10-01

當年

concat(year(now()),'-01-01')//當前年份的第一天
concat(year(now()),'-12-31')//當前年份的最後一天