1. 程式人生 > >MySQL常用系統函式

MySQL常用系統函式

一、 字串函式

  1. CANCAT(S1,S2,…Sn) 連線 S1,S2,…Sn 為一個字串
  2. INSERT(str,x,y,instr) 將字串 str 從第 x 位置開始,y 個字元長的子串替換為字串 instr
  3. LOWER(str) 將字串 str 中所有字元變為小寫
  4. UPPER(str) 將字串 str 中所有字元變為大寫
  5. LEFT(str ,x) 返回字串 str 最左邊的 x 個字元
  6. RIGHT(str,x) 返回字串 str 最右邊的 x 個字元
  7. LPAD(str,n ,pad) 用字串 pad 對 str 最左邊進行填充,直到長度為 n 個字元長度
  8. RPAD(str,n,pad) 用字串 pad 對 str 最右邊進行填充,直到長度為 n 個字元長度
  9. LTRIM(str) 去掉字串 str 左側的空格
  10. RTRIM(str) 去掉字串 str 行尾的空格
  11. REPEAT(str,x) 返回 str 重複 x 次的結果
  12. REPLACE(str,a,b) 用字串 b 替換字串 str 中所有出現的字串 a
  13. STRCMP(s1,s2) 比較字串 s1 和 s2
  14. TRIM(str) 去掉字串行尾和行頭的空格
  15. SUBSTRING(str,x,y) 返回從字串 str x 位置起 y 個字元長度的字串

二、數值函式

  1. ABS(x) 返回 x 的絕對值
  2. CEIL(x) 返回大於 x 的最大整數值
  3. FLOOR(x) 返回小於 x 的最大整數值
  4. MOD(x,y) 返回 x/y 的模
  5. RAND() 返回 0 到 1 內的隨機值
  6. ROUND(x,y) 返回引數 x 的四捨五入的有 y 位小數的值
  7. TRUNCATE(x,y) 返回數字 x 截斷為 y 位小數的結果

三、日期和時間函式

  1. CURDATE() 返回當前日期
  2. CURTIME() 返回當前時間
  3. NOW() 返回當前的日期和時間
  4. UNIX_TIMESTAMP(date)
    返回日期 date 的 UNIX 時間戳
  5. FROM_UNIXTIME 返回 UNIX 時間戳的日期值
  6. WEEK(date) 返回日期 date 為一年中的第幾周
  7. YEAR(date) 返回日期 date 的年份
  8. HOUR(time) 返回 time 的小時值
  9. MINUTE(time) 返回 time 的分鐘值
  10. MONTHNAME(date) 返回 date 的月份名
  11. DATE_FORMAT(date,fmt) 返回按字串 fmt 格式化日期 date 值
  12. DATE_ADD(date,INTERVAL expr type) 返回一個日期或時間值加上一個時間間隔的時間值
  13. DATEDIFF(expr,expr2) 返回起始時間 expr 和結束時間 expr2 之間的日期值
  14. DAYOFWEEK(date) 返回日期是星期幾
  15. DAYOFYEAR(date) 返回當前日期的天數
  16. DAYOFMONTH(date) 返回當月的日期(0-31)
  17. EXTRACT(unit FROM date) 按格式提取日期

ps:

DATE_FORMAT(date,fmt)函式:按字串 fmt 格式化日期 date 值,此函式能夠按指定的
格式顯示日期,可以用到的格式符如下所示。

  1. %S,%s    兩位數字形式的秒(00,01,…,59)
  2. %i    兩位數字形式的分(00,01,…,59)
  3. %H    兩位數字形式的小時,24 小時(00,01,…,23)
  4. %h,%I    兩位數字形式的小時,12 小時(01,02,…,12)
  5. %k    數字形式的小時,24 小時(0,1,…,23)
  6. %l    數字形式的小時,12 小時(1,2,…,12)
  7. %T    24 小時的時間形式(hh:mm:ss)
  8. %r    12 小時的時間形式(hh:mm:ssAM 或 hh:mm:ssPM)
  9. %p    AM 或 PM
  10. %W    一週中每一天的名稱(Sunday,Monday,…,Saturday)
  11. %a    一週中每一天名稱的縮寫(Sun,Mon,…,Sat)
  12. %d    兩位數字表示月中的天數(00,01,…,31)
  13. %e    數字形式表示月中的天數(1,2,…,31)
  14. %D    英文字尾表示月中的天數(1st,2nd,3rd,…)
  15. %w    以數字形式表示週中的天數(0=Sunday,1=Monday,…,6=Saturday)
  16. %j      以 3 位數字表示年中的天數(001,002,…,366)
  17. %U    周(0,1,52),其中 Sunday 為週中的第一天
  18. %u    周(0,1,52),其中 Monday 為週中的第一天
  19. %M   月名(January,February,…,December)
  20. %b    縮寫的月名(January,February,…,December)
  21. %m   兩位數字表示的月份(01,02,…,12)
  22. %c    數字表示的月份(1,2,…,12)
  23. %Y   4位數字表示的年份
  24. %y    兩位數字表示的年份
  25. %%   直接值“%”

DATE_ADD(date,INTERVAL expr type)函式:返回與所給日期 date 相差 INTERVAL 時間段的
日期。

四、流程函式

  1. IF(value,t f)          如果 value 是真,返回 t;否則返回 f
  2. IFNULL(value1,value2)     如果 value1 不為空返回 value1,否則返回 value2
  3. CASE WHEN [value1] THEN[result1]…ELSE[default]END
                  如果 value1 是真,返回 result1,否則返回 default
  4. CASE [expr] WHEN [value1] THEN[result1]…ELSE[default]END

    如果 expr 等於 value1,返回 result1,否則返回 default

五、其他常用函式

  1. DATABASE()          返回當前資料庫名
  2. VERSION()          返回當前資料庫版本
  3. USER()           返回當前登入使用者名稱
  4. INET_ATON(IP)        返回 IP 地址的數字表示
  5. INET_NTOA(num)      返回數字代表的 IP 地址
  6. PASSWORD(str)     返回字串 str 的加密版本
  7. MD5(str)           返回字串 str 的 MD5 值

備註:

如果這些函式還是無法滿足個人需求可參考官方文件:
https://dev.mysql.com/doc/refman/8.0/en/functions.html