首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> MySQL 資料庫 >> MySQL 綜合教學

MySQL 學習筆記(十一):常用函數大全——字符串、數值、日期時間、系統信息

     編輯:MySQL 綜合教學

MySQL 學習筆記(十一):常用函數大全——字符串、數值、日期時間、系統信息

系統整理 MySQL 高頻內置函數,附參數說明、返回值、示例。注意:函數移植性較弱,跨庫遷移需謹慎使用。

一、字符串函數

函數說明示例結果
CONCAT(s1,s2...)拼接字符串,任一參數為 NULL 則返回 NULLCONCAT('M','y','sql')Mysql
INSERT(s,pos,len,new)從 pos 起 len 字符替換為 newINSERT('mysql learning',3,5,'miss you')mymiss youearning
LOWER/UPPER大小寫轉換UPPER('aBcD')ABCD
LEFT/RIGHT(s,n)左/右取 n 字符LEFT('algfdg',3)alg
LPAD/RPAD(s,n,pad)左/右填充至長度 nLPAD('5',3,'0')005
LTRIM/RTRIM/TRIM去除左/右/兩側空格TRIM(' mysql ')mysql
REPLACE(s,old,new)替換所有 old 為 newREPLACE('這是mysql','mysql','oracle')這是oracle
STRCMP(s1,s2)比較:相等0,s1s2為1STRCMP('my','sql')-1
LENGTH/CHAR_LENGTH字節長度/字符數LENGTH('常建功')=6, CHAR_LENGTH=3(理論)
FIND_IN_SET(s,list)在逗號列表中查找位置(從1開始)FIND_IN_SET('mysql','I,love,mysql')3
FIELD(s,s1,s2...)返回首個匹配參數位置FIELD('mysql','oracle','sql server','mysql')3
LOCATE/POSITION/INSTR查找子串起始位置LOCATE('sql','mysql')3
ELT(n,s1,s2...)返回第 n 個字符串ELT(1,'mysql','oracle')mysql
MAKE_SET(bits,s1,s2...)bits 二進制位為1則選擇對應字符串MAKE_SET(13,'a','b','c','d') → 1101 → a,c,da,c,d
SUBSTRING/MID(s,pos,len)截取子串SUBSTRING('algfdg',3,4)gfdg

二、數值函數

函數說明示例
ABS(x)絕對值ABS(-5)=5
CEIL(x)向上取整CEIL(3.2)=4
FLOOR(x)向下取整FLOOR(3.8)=3
MOD(x,y)取模MOD(10,3)=1
RAND() / RAND(seed)隨機數 0~1 / 固定種子RAND()
ROUND(x,d)四捨五入保留 d 位小數ROUND(3.1415,2)=3.14
TRUNCATE(x,d)截斷保留 d 位小數(不四捨五入)TRUNCATE(903.2432,2)=903.24; TRUNCATE(902.324534,-2)=900

三、日期時間函數

1. 當前時間獲取

  • NOW() / CURRENT_TIMESTAMP() / LOCALTIME() / SYSDATE():當前日期時間(推薦 NOW())。
  • CURDATE() / CURRENT_DATE():當前日期。
  • CURTIME() / CURRENT_TIME():當前時間。

2. Unix 時間戳轉換

  • UNIX_TIMESTAMP():當前時間戳;UNIX_TIMESTAMP(date):指定時間轉時間戳。
  • FROM_UNIXTIME(ts):時間戳轉日期時間。

3. UTC 時間

  • UTC_DATE()、UTC_TIME():國際協調時間(比本地時間早 8 小時)。

4. 日期時間分量提取

函數含義示例
YEAR/QAURTER/MONTH年/季度/月MONTH(NOW())=4
MONTHNAME月份英文名MONTHNAME(NOW())=April
WEEK/WEEKOFYEAR第幾周(1-53)WEEK(NOW())=17
DAYOFMONTH/DAYOFYEAR月內/年內第幾天DAYOFMONTH(NOW())=30
HOUR/MINUTE/SECOND時/分/秒HOUR(NOW())=7
DAYNAME星期英文名DAYNAME(NOW())=Thursday
DAYOFWEEK星期幾(1=周日...7=周六)DAYOFWEEK(NOW())=5
WEEKDAY星期幾(0=周一...6=周日)WEEKDAY(NOW())=3
EXTRACT(unit FROM date)通用提取EXTRACT(HOUR_MINUTE FROM NOW())=814

EXTRACT 支持組合單位:SECOND_MICROSECOND、MINUTE_SECOND、HOUR_MINUTE、DAY_HOUR、YEAR_MONTH 等。

5. 日期時間計算

函數說明示例
TO_DAYS(date)距 0000-01-01 天數TO_DAYS(NOW())=736083
FROM_DAYS(n)從 0000-01-01 起 n 天后日期FROM_DAYS(736083+7)=2015-05-07
DATEDIFF(d1,d2)兩日期相差天數DATEDIFF(NOW(),'2000-12-01')=5263
ADDDATE/SUBDATE(date, n)加/減 n 天ADDDATE(CURDATE(),5)=2015-05-05
ADDDATE/SUBDATE(date, INTERVAL expr unit)按單位加減ADDDATE(CURDATE(), INTERVAL '2,3' YEAR_MONTH)=2017-07-30
ADDTIME/SUBTIME(time, expr)加/減時間ADDTIME(CURTIME(), 5*60)=5分鐘後

INTERVAL 單位:SECOND、MINUTE、HOUR、DAY、MONTH、YEAR、MINUTE_SECOND、HOUR_MINUTE、DAY_HOUR、YEAR_MONTH 等,expr 中分隔符任意。

四、系統信息函數

函數說明示例
VERSION()服務器版本5.0.51b-community-nt-log
DATABASE()當前數據庫test3
USER()當前用戶root@localhost
LAST_INSERT_ID()上條 INSERT 自增 ID0 (無自增操作)
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved