MySQL 日期時間格式化函數(shù) DATE_FORMAT() 的使用示例詳解
一、DATE_FORMAT()語法
DATE_FORMAT()
是MySQL中用于格式化日期時間的函數(shù):
語法:
DATE_FORMAT(date, format_string)
date
:需要格式化的日期化時間值,一般是需要被格式化的日期時間類型(datetime類),但也可以是日期時間形式的字符串format_string
:格式化字符串,用于指定日期時間的格式化輸出形式
注1:MySQL允許你對具體的日期時間格式的字符串進行格式化,但其他數(shù)據(jù)庫的格式化函數(shù)不一定支持,比如Clickhouse的formatDateTime()
注2:MySQL對字符串進行格式化時,日期時間的格式并不固定,你可以用很多特殊字符隔開日期時間,比如: /
*
-
<
等,但不能是空格,MySQL會按照YY MM DD HH MM SS
的順序識別字符串中的數(shù)字
-- 比如下列SQl語句的執(zhí)行結(jié)果相同,都是 "2024,December,31st" SELECT DATE_FORMAT( '24-12-31', '%Y,%M,%D') AS format_date SELECT DATE_FORMAT( '2024-12-31', '%Y,%M,%D') AS format_date SELECT DATE_FORMAT( '2024/12/31', '%Y,%M,%D') AS format_date SELECT DATE_FORMAT( '2024*12*31', '%Y,%M,%D') AS format_date SELECT DATE_FORMAT( '24<<12<<31', '%Y,%M,%D') AS format_date -- 但如果使用空格間隔,會執(zhí)行失敗,但不會報錯,輸出結(jié)果為NULL SELECT DATE_FORMAT( '24 12 31', '%Y,%M,%D') AS format_date
二、格式化字符串詳解
格式 | 含義 |
---|---|
%Y | 年份:4位數(shù)字表示,eg: 2024 |
%y | 年份:2位數(shù)字表示,eg: 24 |
%M | 月份:英文全拼表示,eg: June |
%m | 月份:2位數(shù)字表示,范圍01-12,eg: 06 |
%D | 天數(shù):兩位數(shù)字表示,范圍01-31,eg: 15 |
%d | 天數(shù):英文第幾天表示,范圍 1st-31th,eg: 1st, 2nd, 3rd, 15th |
%H | 小時:兩位數(shù)字表示,范圍00-23,eg: 23 |
%i | 分鐘:兩位數(shù)字表示,范圍00-59,eg: 59 |
%S OR %s | 秒鐘:兩位數(shù)字表示,范圍00-59,eg: 16 |
%W | 星期:英文全拼表示,eg: Saturday |
%w | 星期:1位數(shù)字表示,eg: 6 |
%T | 完全時間格式,相當于 %H:%i%s 或 %H:%i:%S,范圍00:00:00-23:59:59,eg: 15:30:36 |
注3:大小寫形式%I 和%t無意義
三、常見日期時間格式組合
常見的日期時間格式化形式基本上就是如下幾種:%Y,%M,%D
%Y-%m-%d %H:%i:%s
%Y/%m/%d
%W,%M,%D
SQL語句
SELECT '%Y-%m-%d %H:%i:%s' AS format, DATE_FORMAT( '2024-12-31 23:48:59','%Y-%m-%d %H:%i:%s') AS format_date UNION ALL SELECT '%Y,%M,%D' AS format, DATE_FORMAT( '2024-12-31 23:48:59','%Y,%M,%D') AS format_date UNION ALL SELECT '%W,%M,%D' AS format, DATE_FORMAT( '2024-12-31 23:48:59','%W,%M,%D') AS format_date UNION ALL SELECT '%y/%m/%d' AS format, DATE_FORMAT( '2024-12-31 23:48:59','%y/%m/%d') AS format_date UNION ALL SELECT '%H:%i:%s' AS format, DATE_FORMAT( '2024-12-31 23:48:59','%H:%i:%s') AS format_date UNION ALL SELECT '%H:%i:%S' AS format, DATE_FORMAT( '2024-12-31 23:48:59','%H:%i:%S') AS format_date UNION ALL SELECT '%T' AS format, DATE_FORMAT( '2024-12-31 23:48:59','%T') AS format_date UNION ALL SELECT '%w,%m-%d' AS format, DATE_FORMAT( '2024-12-31 23:48:59','%w,%m-%d') AS format_date UNION ALL SELECT '------' AS format, '--------------' AS format_date UNION ALL SELECT '%H:%I:%s' AS format, DATE_FORMAT( '2024-12-31 23:48:59','%H:%I:%s') AS format_date UNION ALL SELECT '%t' AS format, DATE_FORMAT( '2024-12-31 23:48:59','%t') AS format_date
執(zhí)行結(jié)果
四、業(yè)務(wù)場景
在實際的業(yè)務(wù)應(yīng)用如報表導(dǎo)出、界面顯示、數(shù)據(jù)分析等,該函數(shù)通常用于輸出特定格式的日期或時間,當然,DATE_FORMAT()
允許你自定義輸出格式,只要你定義好格式化字符串即可。
SELECT DATE_FORMAT(startTime,'%Y-%m') AS startTime FROM tableA WHERE column1 = 'option1'
五、總結(jié)
DATE_FORMAT()
是MySQL中用于格式化輸出日期時間的函數(shù),我們可以通過使用該函數(shù)滿足大多數(shù)格式化日期時間的應(yīng)用場景,本文的示例展示了如何獲取當前日期和時間并將其格式化為一個常見的格式,您可以根據(jù)需要調(diào)整格式字符串來滿足您的具體需求。
但需要注意的是,不同的數(shù)據(jù)庫系統(tǒng)可能支持不同的格式字符串,所以在使用時需要參考相應(yīng)數(shù)據(jù)庫的文檔來確定正確的格式字符串。
到此這篇關(guān)于MySQL 日期時間格式化函數(shù) DATE_FORMAT() 的使用詳解的文章就介紹到這了,更多相關(guān)mysql 日期時間格式化內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
解決mysql與navicat建立連接出現(xiàn)1251錯誤
在本篇文章里小編給大家整理了一篇關(guān)于mysql與navicat建立連接出現(xiàn)1251錯誤怎么解決的技術(shù)文章,需要的朋友們參考下。2019-08-08Linux中部署MySQL環(huán)境的四種方式圖文詳解
這篇文章主要介紹了Linux中部署MySQL環(huán)境的四種方式,本文通過圖文并茂的形式給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友參考下吧2023-11-11MySQL千萬級大數(shù)據(jù)SQL查詢優(yōu)化知識點總結(jié)
在本篇文章里小編給大家整理的是一篇關(guān)于MySQL千萬級大數(shù)據(jù)SQL查詢優(yōu)化知識點總結(jié)內(nèi)容,有需要的朋友們可以學(xué)習(xí)參考下。2019-12-12MySQL 中 blob 和 text 數(shù)據(jù)類型詳解
本文主要介紹了MySQL中blob和text數(shù)據(jù)類型詳解,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-02-02Oracle10個分區(qū)和Mysql分區(qū)區(qū)別詳解
MySQL分區(qū)常用的是:range、list、hash、key,Oracle10g分區(qū)常用的是:range(范圍分區(qū))、list(列表分區(qū))、hash(哈希分區(qū))、range-hash(范圍—哈希分區(qū))、range-list(列表—復(fù)合分區(qū))。下面通過本文詳細給大家介紹Oracle10個分區(qū)和Mysql分區(qū)區(qū)別,一起看看2017-02-02