MYSQL學習筆記三:日期和時間函數
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表示以數值形式
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
#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]
版權@: 本文系本人原創,轉載請標明出處,謝謝!
MYSQL學習筆記三:日期和時間函數