MySQL 常見時間獲取整理(當日、當月、當年、上一日、上一月、上一年,當月第一天,當年第一天等等)
阿新 • • 發佈:2020-09-02
當前時間
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 0month); 當月第一天,格式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(dayfrom 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')//當前年份的最後一天