MYSQL學習筆記三:日期和時間函數
1. 獲取當前日期的函數和獲取當前時間的函數
/*獲取當前日期的函數和獲取當前時間的函數,將日期以'YYYY-MM-DD'或者’YYYYMMDD’格式返回
*/
#CURDATE()與CURRENT_DATE()作用相同,返回相同的系統當前日期
#CURDATE()+0則將當前日期值轉換成數值類型
SELECT CURDATE(), CURRENT_DATE(), CURDATE()+0;
/* CURTIME()和CURRENT_TIME()作用相同,將當前時間以'HH:MM:SS'或者’HHMMSS’格式返回
*/
#CURRENT_TIME()+0表示以數值形式HHMMSS格式顯示
SELECT CURTIME(), CURRENT_TIME(), CURRENT_TIME()+0;
2. 獲取當前日期與時間的函數
#從結果可以看出,下面四個函數的功能相同
SELECT CURRENT_TIMESTAMP(),LOCALTIME(),NOW(),SYSDATE();
3. 獲取月份的函數
#MONTH(date):函數返回date對應的月份,范圍從1~12
#MONTHNAME(date):函數返回日期date對應月份的英文全名,如March
SELECT MONTH(NOW()), MONTHNAME(NOW());
4. 獲取星期的函數
#DAYNAME(d):返回d對應的工作日的英文名稱,如Sunday, Monday等
#DAYOFWEEK(d):返回d對應的一周中的索引(位置)。1表示周日,2表示周一,...,7表示周六
#WEEKDAY(d):返回d對應的工作日的索引。0表示周一,1表示周二,...6表示周日
SELECT DAYNAME(NOW()), DAYOFWEEK(NOW()), WEEKDAY(NOW());
5. 獲取星期數的函數
#WEEK(d):計算日期d是一年中的第幾周。
#WEEK(d,mode):指定mode是否起始於周日或者周一,若mode被省略,則使用default_week_format系統自變量的值0
#WEEK函數中Mode參數取值
Mode
一周的第一天
范圍
Week 1為第一周
0
周日
0~53
本年度中有一個周日
1
周一
0~53
本年度中有3天以上
2
周日
1~53
本年度中有一個周日
3
周一
1~53
本年度中有3天以上
4
周日
0~53
本年度中有3天以上
5
周一
0~53
本年度中有一個周一
6
周日
1~53
本年度中有3天以上
7
周一
1~53
本年度中有一個周一
#WEEKOFYEAR(d):計算某天d位於一年中的第幾周,范圍是1~53。相當於WEEK(d,3)
SELECT WEEK(NOW()), WEEK(NOW(),0), WEEK(NOW(),1), WEEKOFYEAR(NOW()), WEEK(NOW(),3);
6. 獲取天數函數
#DAYOFYEAR(d):返回d是一年中的第幾天,范圍從1~366
#DAYOFMONTH(d):返回d是一個月中的第幾天,范圍是1~31
SELECT DAYOFYEAR(NOW()), DAYOFMONTH(NOW());
7. 獲取年份、季度、月、小時、分鐘和秒鐘的函數
#YEAR(date):返回date對應的年份,范圍是1970~2069
#QUARTER(date):返回date對應的一年中的季度,范圍1~4
#MONTH(date):函數返回date對應的月份,范圍從1~12
#MONTHNAME(date):函數返回日期date對應月份的英文全名,如March
#HOUR(time):返回time對應的小時數,范圍是0~24
#MINUTE(time):返回time對應的分鐘數,范圍是從0~59
#SECOND(time):返回time對應的秒數,范圍是0~59
SELECT
YEAR(CURDATE()) as yr,
QUARTER(CURDATE()) as qt,
MONTH(CURDATE()) as mon,
MONTHNAME(CURDATE()) as mon_name,
HOUR(CURTIME()) as hrs,
MINUTE(CURTIME()) as min,
SECOND(CURTIME()) as snd;
8. 獲取日期的指定值函數EXTRACT(type FROM date)
#用於從date中按照type提取一部分值
SELECT
EXTRACT(YEAR FROM NOW()) as year,
EXTRACT(QUARTER FROM NOW()) as quarter,
EXTRACT(MONTH FROM NOW()) as month,
EXTRACT(DAY FROM NOW()) as day,
EXTRACT(HOUR FROM NOW()) as hour,
EXTRACT(MINUTE FROM NOW()) as minute,
EXTRACT(SECOND FROM NOW()) as second,
EXTRACT(YEAR_MONTH FROM NOW()) as year_mon
;
9. 時間和秒鐘轉換函數TIME_TO_SEC(time)
#轉換公式:<小時*3600+分鐘*60+秒>
#TIME_TO_SEC(time):返回已轉化成秒的time參數
#SEC_TO_TIME(seconds):返回被轉化為小時、分鐘和秒數的seconds參數值
SELECT
CURTIME() as time,
TIME_TO_SEC(CURTIME()) as second,
SEC_TO_TIME(TIME_TO_SEC(CURTIME())) as time;
.....待續
本文尚未完成,同於時間關系,後面會續上,謝謝大家關照!
如果你們有更好的建議,請發郵件到我私人郵箱: [email protected]
版權@: 本文系本人原創,轉載請標明出處,謝謝!