mysql日期有關函數的使用

mysql有許多日期相關函數,其中有一些非常好用,有時候在適當的場合用到,可以達到事半功倍的效果。

1.  統計週數據時用到   yearweek  函數,查詢出今年的週數,比如20191216,查詢就是201950

mysql默認 週日當做一週開始,修改成週一當做開始需要在yearweek函數後的model裏面填寫1

2. extract()函數用於從一個date或者interval類型中截取到特定的部分

以下爲oracle的用法,oracle 不支持提取周幾,但是在postgresql中可以使用extract(dow from now()) 來提取周幾

extract (    

        { year | month | day | hour | minute | second }    

        | { timezone_hour | timezone_minute }    

        | { timezone_region | timezone_abbr }    

from { date_value | interval_value } )

select extract (year from sysdate) year, extract (month from sysdate) month, extract (day from sysdate) day from dual; YEAR MONTH DAY

3. DATE_ADD()

語法

DATE_ADD(date,INTERVAL expr type);

date 參數是合法的日期表達式。expr 參數是您希望添加的時間間隔。

type 參數可以是下列值:

Type 值
MICROSECOND
SECOND
MINUTE
HOUR
DAY
WEEK
MONTH
QUARTER
YEAR
SECOND_MICROSECOND
MINUTE_MICROSECOND
MINUTE_SECOND
HOUR_MICROSECOND
HOUR_SECOND
HOUR_MINUTE
DAY_MICROSECOND
DAY_SECOND
DAY_MINUTE
DAY_HOUR
YEAR_MONTH

 

 

#51.查詢各學生的年齡,只按年份來算
select student005.Sname ,year(student005.Sage) from student005;

select student005.SId as 學生編號,student005.Sname  as  
學生姓名,TIMESTAMPDIFF(YEAR,student005.Sage,CURDATE()) as 學生年齡
from student005;

#52.按照出生日期來算,當前月日 < 出生年月的月日則,年齡減一
select student005.SId as 學生編號,student005.Sname  as  
學生姓名,TIMESTAMPDIFF(YEAR,student005.Sage,CURDATE()) as 學生年齡
from student005;

#53.查詢本週過生日的學生
select *,CURDATE()
from student005 
where YEARWEEK(student005.Sage)=YEARWEEK(CURDATE());

select curdate(),YEARWEEK(CURDATE());-- 獲取當前日期
#54.查詢下週過生日的學生
select * from student005 
where YEARWEEK(student005.Sage+7)=YEARWEEK(CURDATE());

select *
from student005 
where YEARWEEK(student005.Sage)=CONCAT(YEAR(CURDATE()),week(CURDATE())+1);
#55.查詢本月過生日的學生
select *
from student005 
where EXTRACT(YEAR_MONTH FROM student005.Sage)
=EXTRACT(YEAR_MONTH FROM CURDATE());

#56.查詢下月過生日的學生查詢下月過生日的學生
select *
from student005
where EXTRACT(YEAR_MONTH FROM student005.Sage)=
EXTRACT(YEAR_MONTH FROM DATE_ADD(CURDATE(),INTERVAL 1 MONTH));

 

 

 

 

 

發佈了150 篇原創文章 · 獲贊 140 · 訪問量 5萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章