MySQL常用系統函式
阿新 • • 發佈:2018-11-08
一、 字串函式
- CANCAT(S1,S2,…Sn) 連線 S1,S2,…Sn 為一個字串
- INSERT(str,x,y,instr) 將字串 str 從第 x 位置開始,y 個字元長的子串替換為字串 instr
- LOWER(str) 將字串 str 中所有字元變為小寫
- UPPER(str) 將字串 str 中所有字元變為大寫
- LEFT(str ,x) 返回字串 str 最左邊的 x 個字元
- RIGHT(str,x) 返回字串 str 最右邊的 x 個字元
- LPAD(str,n ,pad) 用字串 pad 對 str 最左邊進行填充,直到長度為 n 個字元長度
- RPAD(str,n,pad) 用字串 pad 對 str 最右邊進行填充,直到長度為 n 個字元長度
- LTRIM(str) 去掉字串 str 左側的空格
- RTRIM(str) 去掉字串 str 行尾的空格
- REPEAT(str,x) 返回 str 重複 x 次的結果
- REPLACE(str,a,b) 用字串 b 替換字串 str 中所有出現的字串 a
- STRCMP(s1,s2) 比較字串 s1 和 s2
- TRIM(str) 去掉字串行尾和行頭的空格
- SUBSTRING(str,x,y) 返回從字串 str x 位置起 y 個字元長度的字串
二、數值函式
- ABS(x) 返回 x 的絕對值
- CEIL(x) 返回大於 x 的最大整數值
- FLOOR(x) 返回小於 x 的最大整數值
- MOD(x,y) 返回 x/y 的模
- RAND() 返回 0 到 1 內的隨機值
- ROUND(x,y) 返回引數 x 的四捨五入的有 y 位小數的值
- TRUNCATE(x,y) 返回數字 x 截斷為 y 位小數的結果
三、日期和時間函式
- CURDATE() 返回當前日期
- CURTIME() 返回當前時間
- NOW() 返回當前的日期和時間
- UNIX_TIMESTAMP(date)
- FROM_UNIXTIME 返回 UNIX 時間戳的日期值
- WEEK(date) 返回日期 date 為一年中的第幾周
- YEAR(date) 返回日期 date 的年份
- HOUR(time) 返回 time 的小時值
- MINUTE(time) 返回 time 的分鐘值
- MONTHNAME(date) 返回 date 的月份名
- DATE_FORMAT(date,fmt) 返回按字串 fmt 格式化日期 date 值
- DATE_ADD(date,INTERVAL expr type) 返回一個日期或時間值加上一個時間間隔的時間值
- DATEDIFF(expr,expr2) 返回起始時間 expr 和結束時間 expr2 之間的日期值
- DAYOFWEEK(date) 返回日期是星期幾
- DAYOFYEAR(date) 返回當前日期的天數
- DAYOFMONTH(date) 返回當月的日期(0-31)
- EXTRACT(unit FROM date) 按格式提取日期
ps:
DATE_FORMAT(date,fmt)函式:按字串 fmt 格式化日期 date 值,此函式能夠按指定的
格式顯示日期,可以用到的格式符如下所示。
- %S,%s 兩位數字形式的秒(00,01,…,59)
- %i 兩位數字形式的分(00,01,…,59)
- %H 兩位數字形式的小時,24 小時(00,01,…,23)
- %h,%I 兩位數字形式的小時,12 小時(01,02,…,12)
- %k 數字形式的小時,24 小時(0,1,…,23)
- %l 數字形式的小時,12 小時(1,2,…,12)
- %T 24 小時的時間形式(hh:mm:ss)
- %r 12 小時的時間形式(hh:mm:ssAM 或 hh:mm:ssPM)
- %p AM 或 PM
- %W 一週中每一天的名稱(Sunday,Monday,…,Saturday)
- %a 一週中每一天名稱的縮寫(Sun,Mon,…,Sat)
- %d 兩位數字表示月中的天數(00,01,…,31)
- %e 數字形式表示月中的天數(1,2,…,31)
- %D 英文字尾表示月中的天數(1st,2nd,3rd,…)
- %w 以數字形式表示週中的天數(0=Sunday,1=Monday,…,6=Saturday)
- %j 以 3 位數字表示年中的天數(001,002,…,366)
- %U 周(0,1,52),其中 Sunday 為週中的第一天
- %u 周(0,1,52),其中 Monday 為週中的第一天
- %M 月名(January,February,…,December)
- %b 縮寫的月名(January,February,…,December)
- %m 兩位數字表示的月份(01,02,…,12)
- %c 數字表示的月份(1,2,…,12)
- %Y 4位數字表示的年份
- %y 兩位數字表示的年份
- %% 直接值“%”
DATE_ADD(date,INTERVAL expr type)函式:返回與所給日期 date 相差 INTERVAL 時間段的
日期。
四、流程函式
- IF(value,t f) 如果 value 是真,返回 t;否則返回 f
- IFNULL(value1,value2) 如果 value1 不為空返回 value1,否則返回 value2
- CASE WHEN [value1] THEN[result1]…ELSE[default]END
如果 value1 是真,返回 result1,否則返回 default - CASE [expr] WHEN [value1] THEN[result1]…ELSE[default]END
如果 expr 等於 value1,返回 result1,否則返回 default
五、其他常用函式
- DATABASE() 返回當前資料庫名
- VERSION() 返回當前資料庫版本
- USER() 返回當前登入使用者名稱
- INET_ATON(IP) 返回 IP 地址的數字表示
- INET_NTOA(num) 返回數字代表的 IP 地址
- PASSWORD(str) 返回字串 str 的加密版本
- MD5(str) 返回字串 str 的 MD5 值
備註:
如果這些函式還是無法滿足個人需求可參考官方文件:
https://dev.mysql.com/doc/refman/8.0/en/functions.html