在 MySQL 數據庫中诞外,函數可以用在
SELECT
語句及其子句(例如where
料睛、order by
、having
等)中撬槽,也可以用在UPDATE
此改、DELETE
語句及其子句中
字符串函數
函數 | 功能 |
---|---|
concat(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 行尾的空格 |
trim(str) | 去掉 str 首尾的空格 |
repeat(str,x) | 返回 str 重復 x 次的結果 |
replace(str,a,b) | 用字符串 b 替換 str 中所有出現的字符串 a |
strcmp(s1,s2) | 比較字符串 s1 和 s2 的 ASCII 碼值的大小 |
substring(str,x,y) | 返回從 str 的 x 位置起 y 個字符長度的子串 |
-
concat()
函數與 NULL 連接時返回 NULL -
insert()
和substring()
的位置從 1 開始
數值函數
函數 | 功能 |
---|---|
abs(x) | 返回 x 的絕對值 |
ceil(x) | 向上取整 |
floor(x) | 向下取整 |
mod(x,y) | 取模 |
rand() | 返回 0 ~ 1 內的隨機數 |
round(x,y) | 返回 x 的四舍五入的有 y 位小數的值 |
truncate(x,y) | 返回數字 x 截斷為 y 為小數的值 |
-
round()
函數 y 默認為 0
日期和時間函數
函數 | 功能 |
---|---|
curdate() | 返回當前日期 |
curtime() | 返回當前時間 |
now() | 返回當前的日期和時間 |
unix_timestamp(date) | 返回日期 date 的 unix 時間戳 |
from_unixtime(timestamp) | 返回 unix 的時間戳的日期值 |
week(date) | 返回日期 date 為一年中的第幾周 |
year(date) | 返回 date 的年份 |
hour(date) | 返回 date 的小時 |
minute(date) | 返回 date 的分鐘 |
month(date) | 返回 month 的月份 |
monthname(date) | 返回 date 的英文月份名 |
date_format(date,fmt) | 返回按字符串 fmt 格式化日期 date 值 |
date_add(date,interval expr type) | 返回一個日期或時間值加上一個時間間隔的日期值 |
date_diff(expr,expr2) | 返回起始時間 expr 和結束時間 expr2 之間的天數 |
unix_timestamp()
和from_unixtime()
函數互為逆操作-
date_format()
格式符格式符 格式說明 %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 縮寫的月名(Jan,Feb,...,Dec) %m 兩位數字表示的月份(01,02,...,12) %c 數字表示的月份(1,2,...,12) %Y 4 位數字表示的年份 %y 2 位數字表示的年份 %% 直接值 % -
date_add(date,interval expr type)
函數,interval 是間隔類型關鍵字言津,expr 是表達式攻人,對應后面的類型,type 是間隔類型間隔類型 描述 格式 hour 小時 hh minute 分 mm second 秒 ss year 年 YY month 月 MM day 日 DD year_month 年和月 YY-MM day_hour 日和小時 DD hh day_minute 日和分鐘 DD hh:mm day_second 日和秒 DD hh:mm:ss hour_minute 小時和分 hh:mm hour_second 小時和秒 hh:ss minute_second 分鐘和秒 mm:ss select date_add(now(),interval 1_2 year_month)
流程函數
函數 | 功能 |
---|---|
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 |
-
ifnull(value1,value2)
函數一般用來替換 null 值铺根。當 value1 為 null 時返回 value2
其它常用函數
函數 | 功能 |
---|---|
database() | 返回當前數據庫名 |
version() | 返回當前數據庫版本 |
user() | 返回當前登錄用戶名 |
inet_aton(IP) | 返回 IP 地址的數字表示 |
inet_ntoa(num) | 返回數字代表的 IP 地址 |
password(str) | 返回字符串 str 的加密版本 |
md5(str) | 返回字符串 str 的 md5 值 |