MYSQL常用字符串函數(shù)和時間函數(shù)示例詳解
一、字符串函數(shù)
1、?CONCAT(str1, str2, …) 拼接多個字符串。
SELECT CONCAT('Hello', ' ', 'World'); -- 輸出 'Hello World' SELECT CONCAT(數(shù)字, '%'); -- 輸出 百分?jǐn)?shù)
2、SUBSTRING(str, start, length)?? 或 ?SUBSTR() 截取字符串。
SELECT SUBSTRING('MySQL', 3, 2); -- 輸出 'SQ'
3、LENGTH(str)?? 與 ?CHAR_LENGTH(str) 獲取字符串的長度
LENGTH():返回字節(jié)數(shù)(受字符集影響);CHAR_LENGTH():返回字符數(shù)。
SELECT LENGTH('中國'), CHAR_LENGTH('中國'); -- 輸出 6(UTF-8)和 2
4、UPPER(str) / LOWER(str) 轉(zhuǎn)換大小寫
SELECT UPPER('mysql'); -- 輸出 'MYSQL'
5、REPLACE(str, old_str, new_str) 替換字符串
SELECT REPLACE('apple pie', 'apple', 'cherry'); -- 輸出 'cherry pie'
6、TRIM([LEADING|TRAILING|BOTH] ‘char’ FROM str) 去除首尾指定字符(默認(rèn)去空格)
SELECT TRIM(' MySQL '); -- 輸出 'MySQL' 去除空格字符
- TRIM() #刪除前后空格
- RTRIM() #刪除字符串結(jié)尾空格
- LTRIM() #刪除字符串起始空格
BOTH刪除指定的首尾字符
SELECT TRIM(BOTH 'a' FROM 'applea'); --結(jié)果pple
LEADING 刪除指定的首字符
SELECT TRIM(LEADING 'a' FROM 'applea'); --結(jié)果pplea
TRAILING刪除指定的尾字符
SELECT TRIM(TRAILING 'a' FROM 'applea'); --結(jié)果apple
二、時間函數(shù)
1、NOW() 返回當(dāng)前日期和時間,格式 YYYY-MM-DD HH:MM:SS
SELECT NOW(); -- 2023-10-25 14:30:45
2、CURDATE() 返回當(dāng)前日期,格式 YYYY-MM-DD
SELECT CURDATE(); -- 2023-10-25
3、CURTIME() 返回當(dāng)前時間,格式 HH:MM:SS
SELECT CURTIME(); -- 14:30:45
4、DATE() 僅存儲日期?(年-月-日),不包含時間。 YYYY-MM-DD(例如:2023-10-05)。
CREATE TABLE example (event_date DATE); INSERT INTO example VALUES ('2023-10-05');
5、?TIME 僅存儲時間?(時:分:秒),可以表示一天中的時間點或時間間隔。
格式 HH:MM:SS(例如:15:30:00)。支持微秒:HH:MM:SS[.fraction](例如:15:30:00.123456)
CREATE TABLE example (duration TIME); INSERT INTO example VALUES ('15:30:00'), ('-05:00:00');
6、DATETIME() 存儲日期 + 時間?(年-月-日 時:分:秒),轉(zhuǎn)換之后的格式是字符串的格式
格式?:YYYY-MM-DD HH:MM:SS(例如:2023-10-05 15:30:00)。支持微秒:YYYY-MM-DD HH:MM:SS[.fraction]。
CREATE TABLE example (event_time DATETIME); INSERT INTO example VALUES ('2023-10-05 15:30:00');
7、常用日期格式化符號
符號 | 含義 |
---|---|
%Y | 四位年份 |
%m | 兩位月份 (01-12) |
%M | ?完整英文名稱?(January, February, …, December)。 |
%d | 兩位日期 (01-31) |
%D | 表示日期(月中的第幾天)的 ?英文序數(shù)后綴格式?(1st, 2nd, 3rd, 4th, …, 30th, 31st)。 |
%H | 24小時制小時 (00-23) |
%i: | 分鐘 (00-59) |
%s: | 秒 (00-59) |
%W: | 星期全名 (Sunday-Saturday) |
%a: | 縮寫星期 (Sun-Sat) |
%T | 24小時制時間(等價于 %H:%i:%s) |
%r | 12小時制時間(等價于 %h:%i:%s %p) |
%p | 上午/下午標(biāo)記(AM/PM) |
8、日期/時間格式化,將日期轉(zhuǎn)換成字符串格式
- DATE_FORMAT(date, format): 格式化日期,日期和時間部分
SELECT DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i:%s'); -- 2023-10-25 14:30:45 SELECT DATE_FORMAT(NOW(), '%W, %M %e, %Y'); -- Wednesday, October 25, 2023 SELECT DATE_FORMAT(NOW(), '%Y年%m月%d日 %H時%i分'); -- 2023年10月25日 14時30分
- TIME_FORMAT(time, format): 格式化時間(僅時間)(用法同 DATE_FORMAT)
SELECT TIME_FORMAT('2023-10-01 08:30:00', '%T'); -- 輸出: 08:30:00
9、STR_TO_DATE(str, format) 將字符串解析為日期
SELECT STR_TO_DATE('25,10,2023', '%d,%m,%Y'); -- 2023-10-25
10、日期計算
- DATE_ADD(date, INTERVAL expr unit): 日期加法
SELECT DATE_ADD(NOW(), INTERVAL 7 DAY); -- 當(dāng)前時間加7天 SELECT DATE_ADD(NOW(), INTERVAL 3 MONTH); -- 當(dāng)前時間加3個月
- DATE_SUB(date, INTERVAL expr unit): 日期減法
SELECT DATE_SUB(NOW(), INTERVAL 1 HOUR); -- 當(dāng)前時間減1小時
- DATEDIFF(date1, date2): 計算兩個日期之間的天數(shù)差
SELECT DATEDIFF('2023-10-31', '2023-10-25'); -- 6
其中unit 可選值如下YEAR、MONTH、DAY、HOUR、MINUTE、SECOND,并且只能使用%Y-%m-%d格式,不能使用%Y-%M-%d格式
11、提取日期部分
YEAR(date): 提取年份
MONTH(date): 提取月份
DAY(date): 提取日期
HOUR(time): 提取小時
MINUTE(time): 提取分鐘
SECOND(time): 提取秒
EXTRACT(unit FROM date)
SELECT EXTRACT(YEAR_MONTH FROM '2023-10-01'); -- 202310 mysql> SELECT EXTRACT(YEAR_MONTH FROM NOW()); +--------------------------------+ | EXTRACT(YEAR_MONTH FROM NOW()) | +--------------------------------+ | 202504 | +--------------------------------+ 1 row in set (0.01 sec) mysql> mysql> SELECT EXTRACT(YEAR_MONTH FROM NOW()); +--------------------------------+ | EXTRACT(YEAR_MONTH FROM NOW()) | +--------------------------------+ | 202504 | +--------------------------------+ 1 row in set (0.01 sec) mysql>
總結(jié)
到此這篇關(guān)于MYSQL常用字符串函數(shù)和時間函數(shù)的文章就介紹到這了,更多相關(guān)MYSQL字符串函數(shù)和時間函數(shù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
MySQL?聚合函數(shù)、分組查詢、時間函數(shù)詳解
這篇文章主要介紹了MySQL?聚合函數(shù)、分組查詢、時間函數(shù)?,主要考驗聚合函數(shù)count()求和以及分組查詢,本文結(jié)合實例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下2024-08-08關(guān)于Mysql update修改多個字段and的語法問題詳析
這篇文章主要給大家介紹了關(guān)于mysql update修改多個字段and的語法問題的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-12-12mysql5.7.17在win2008R2的64位系統(tǒng)安裝與配置實例
本篇文章主要給大家介紹了mysql5.7.17在win2008R2的64位系統(tǒng)安裝與配置實例,以及在配置過程中遇到的問題解決辦法。2017-11-11MySQL中sleep函數(shù)的特殊現(xiàn)象示例詳解
這篇文章主要給大家介紹了關(guān)于MySQL中sleep函數(shù)特殊現(xiàn)象的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者使用MySQL具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧2019-10-10MySQL中觸發(fā)器的基礎(chǔ)學(xué)習(xí)教程
這篇文章主要介紹了MySQL中觸發(fā)器的基礎(chǔ)學(xué)習(xí)教程,包括對觸發(fā)器的創(chuàng)建和管理等基本知識,著力推薦!需要的朋友可以參考下2015-12-12Mysql數(shù)據(jù)庫從5.6.28版本升到8.0.11版本部署項目時遇到的問題及解決方法
這篇文章主要介紹了Mysql數(shù)據(jù)庫從5.6.28版本升到8.0.11版本過程中遇到的問題及解決方法,解決辦法有三種,每種方法給大家介紹的都很詳細(xì),感興趣的朋友跟隨腳本之家小編一起學(xué)習(xí)吧2018-05-05MySQL計算兩個日期相差的天數(shù)、月數(shù)、年數(shù)
這篇文章主要介紹了MySQL計算兩個日期相差的天數(shù)、月數(shù)、年數(shù),本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下2019-08-08MySQL快速復(fù)制數(shù)據(jù)庫數(shù)據(jù)表的方法
有些時候,我們?yōu)榱丝焖俅罱ㄒ粋€測試環(huán)境,或者說是克隆一個網(wǎng)站,需要復(fù)制已經(jīng)存在的mysql數(shù)據(jù)庫。下面小編給大家介紹mysql快速復(fù)制數(shù)據(jù)庫數(shù)據(jù)表的方法,小伙伴們跟著小編一起學(xué)習(xí)吧2015-10-10