在MySQL中,日期和時間是常見的數據類型,處理日期和時間數據是數據庫操作中的重要部分。MySQL提供了豐富的日期和時間函數,用于處理日期和時間的計算、格式化、轉換等操作。本文將詳細介紹MySQL中常用的日期函數及其使用方法。
在MySQL中,日期和時間數據類型主要包括以下幾種:
DATE:日期,格式為YYYY-MM-DD,例如2023-10-05。TIME:時間,格式為HH:MM:SS,例如14:30:00。DATETIME:日期和時間,格式為YYYY-MM-DD HH:MM:SS,例如2023-10-05 14:30:00。TIMESTAMP:時間戳,格式為YYYY-MM-DD HH:MM:SS,與DATETIME類似,但范圍較小,且與時區相關。YEAR:年份,格式為YYYY,例如2023。NOW()NOW()函數返回當前的日期和時間,格式為YYYY-MM-DD HH:MM:SS。
SELECT NOW();
輸出結果:
2023-10-05 14:30:00
CURDATE()CURDATE()函數返回當前日期,格式為YYYY-MM-DD。
SELECT CURDATE();
輸出結果:
2023-10-05
CURTIME()CURTIME()函數返回當前時間,格式為HH:MM:SS。
SELECT CURTIME();
輸出結果:
14:30:00
YEAR()YEAR()函數從日期或日期時間中提取年份。
SELECT YEAR('2023-10-05');
輸出結果:
2023
MONTH()MONTH()函數從日期或日期時間中提取月份。
SELECT MONTH('2023-10-05');
輸出結果:
10
DAY()DAY()函數從日期或日期時間中提取日。
SELECT DAY('2023-10-05');
輸出結果:
5
HOUR()HOUR()函數從時間或日期時間中提取小時。
SELECT HOUR('14:30:00');
輸出結果:
14
MINUTE()MINUTE()函數從時間或日期時間中提取分鐘。
SELECT MINUTE('14:30:00');
輸出結果:
30
SECOND()SECOND()函數從時間或日期時間中提取秒。
SELECT SECOND('14:30:00');
輸出結果:
0
DATE_ADD()DATE_ADD()函數用于在日期或日期時間上添加指定的時間間隔。
SELECT DATE_ADD('2023-10-05', INTERVAL 1 DAY);
輸出結果:
2023-10-06
DATE_SUB()DATE_SUB()函數用于在日期或日期時間上減去指定的時間間隔。
SELECT DATE_SUB('2023-10-05', INTERVAL 1 MONTH);
輸出結果:
2023-09-05
DATEDIFF()DATEDIFF()函數用于計算兩個日期之間的天數差。
SELECT DATEDIFF('2023-10-05', '2023-09-05');
輸出結果:
30
TIMEDIFF()TIMEDIFF()函數用于計算兩個時間之間的時間差。
SELECT TIMEDIFF('14:30:00', '12:00:00');
輸出結果:
02:30:00
DATE_FORMAT()DATE_FORMAT()函數用于將日期或日期時間格式化為指定的字符串格式。
SELECT DATE_FORMAT('2023-10-05 14:30:00', '%Y年%m月%d日 %H時%i分%s秒');
輸出結果:
2023年10月05日 14時30分00秒
STR_TO_DATE()STR_TO_DATE()函數用于將字符串轉換為日期或日期時間。
SELECT STR_TO_DATE('2023年10月05日', '%Y年%m月%d日');
輸出結果:
2023-10-05
DATE()DATE()函數用于提取日期或日期時間中的日期部分。
SELECT DATE('2023-10-05 14:30:00');
輸出結果:
2023-10-05
TIME()TIME()函數用于提取日期或日期時間中的時間部分。
SELECT TIME('2023-10-05 14:30:00');
輸出結果:
14:30:00
TIMESTAMP()TIMESTAMP()函數用于將日期或日期時間轉換為時間戳。
SELECT TIMESTAMP('2023-10-05 14:30:00');
輸出結果:
2023-10-05 14:30:00
DAYOFWEEK()DAYOFWEEK()函數返回日期對應的星期幾,1表示星期日,2表示星期一,依此類推。
SELECT DAYOFWEEK('2023-10-05');
輸出結果:
5
DAYOFYEAR()DAYOFYEAR()函數返回日期在一年中的第幾天。
SELECT DAYOFYEAR('2023-10-05');
輸出結果:
278
WEEK()WEEK()函數返回日期在一年中的第幾周。
SELECT WEEK('2023-10-05');
輸出結果:
40
LAST_DAY()LAST_DAY()函數返回日期所在月份的最后一天。
SELECT LAST_DAY('2023-10-05');
輸出結果:
2023-10-31
MySQL提供了豐富的日期和時間函數,能夠滿足各種日期和時間處理的需求。通過掌握這些函數的使用方法,可以更加高效地處理數據庫中的日期和時間數據。本文介紹了常用的日期函數及其使用方法,包括獲取當前日期和時間、日期和時間的提取、日期和時間的計算、日期和時間的格式化、日期和時間的比較以及其他常用日期函數。希望本文能夠幫助讀者更好地理解和應用MySQL中的日期函數。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。