MySQL 常用函數


一、序言

本人博客並非教材,只會以自己的方式記一些自己覺得有必要記錄的東西,請勿介意。

比如本篇內容,我就覺得簡潔的表格比詳細的使用示例更好。

二、字符串函數

函數 功能
CONCAT(str1,str2,.....) 字符串連接,連接目標個數不限
INSERT(str,x,y,instr) 將字符串str從第x位置開始,y個字符長的子串替換為字符串instr  
LOWER(str) 轉小寫
UPPER(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右邊的空格
TRIM(str) 去除字符串兩邊的空格
REPEAT(str,x) 返回str重復x次的結果
REPLACE(str,a,b) 把字符串str中所有的a替換成b
STRCMP(str1,str2) 比較兩個字符串,大於為1 小於為-1 等於為0
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位小數的結果

 

 

 

 

 

 

 

 

 

 

四、時間日期函數

函數 功能
NOW() 返回當前日期和時間
CURDATE() 返回當前日期
CURTIME() 返回當前時間
UNIX_TIMESTAMP(date) 返回date的時間戳
FROM_UNIXTIME(time) 返回時間戳的date值
WEEK(date) 返回日期date為一年中的第幾周
YEAR(date) 返回日期date的年份
HOUR(time) 返回time的小時值
MINUTE(time) 返回time的分鍾值
MONTHNAME(date) 返回date的月份名稱 英文名
DATE_FORMAT(date,fmt) 返回按字符串fmt格式化日期date值
DATEDIFF(expr,expr2) 返回起始時間和結束時間之間的天數

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

這個函數 DATE_FORMAT(date,fmt)  其中的fmt 可以使用的格式符如下表

格式符 格式說明
%S和%s 兩位數字形式的秒
%i 兩位數字形式的分
%H 兩位數字形式的小時 24小時制
%h和%I 兩位數字形式的小時 12小時制
%T 24小時的時間形式 14:19:41
%d 兩位數字表示天
%m 兩位數字表示的月份
%Y 四位數字表示的年份
%y 兩位數字表示的年份

 

 

 

 

 

 

 

 

 

 

 

-- 格式化當前時間
SELECT DATE_FORMAT(NOW(),'%Y-%m-%d %H:%i:%s')
-- 2018-10-25 14:26:01
-- 現在到過年還有多少天
SELECT DATEDIFF('2019-02-05',NOW())
-- 103

五、流程函數

函數 功能
IF(value,a,b) 如果value是真,那么返回a,否則返回b
IFNULL(value1,value2) 如果value1是null,那么返回value2,否則返回value1本身
CASE WHEN [value] THEN [result1] ... ELSE [default_value] END 如果value是真,返回result1,【可以跟上多個WHEN-THEN匹配】否則返回default_value
CASE [value] WHEN [a1] THEN [result1] ... ELSE [default_value] END 匹配value的值,如果等於a1,那么返回result1,也可以跟上多個匹配,否則default_value

 

 

 

 

 

 

 

示例兩種case用法:

SELECT CASE 10 WHEN 9 THEN "這是9" WHEN 10 THEN "這是10" ELSE "全錯" END
-- 這是10
SELECT CASE WHEN 10>12 THEN "10>12對" WHEN 10>9 THEN "10>9對" ELSE "全錯" END 
-- 10>9對

六、其他函數

函數 功能
DATABASE() 返回當前數據庫名
VERSION() 返回當前數據庫版本
USER() 返回當前登錄用戶名
INET_ATON(ip) 返回IP地址的數字表示
INET_NTOA(num) 返回數字代表的Ip地址
PASSWORD(str) 返回字符串str的加密版本
MD5(str) 返回字符串的MD5值


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM