在 MySQL 數(shù)據(jù)庫(kù)中,函數(shù)可以用在
SELECT語(yǔ)句及其子句(例如where、order by、having等)中,也可以用在UPDATE、DELETE語(yǔ)句及其子句中
字符串函數(shù)
| 函數(shù) | 功能 |
|---|---|
| concat(s1,s2,...sn) | 連接 s1,s2,...sn 為一個(gè)字符串 |
| insert(str,x,y,instr) | 將字符串 str 從第 x 位置開(kāi)始,y 個(gè)字符長(zhǎng)的子串替換為字符串 instr |
| lower(str) | 將 str 轉(zhuǎn)換為小寫(xiě) |
| upper(str) | 將 str 轉(zhuǎn)換為大寫(xiě) |
| left(str,x) | 返回 str 最左邊的 x 個(gè)字符 |
| right(str,x) | 返回 str 最右邊的 x 個(gè)字符 |
| lpad(str,n,pad) | 用字符串 pad 對(duì) str 最左邊進(jìn)行填充,直到字符串長(zhǎng)度為 n |
| rpad(str,n,pad) | 用字符串 pad 對(duì) str 最右邊進(jìn)行填充,直到字符串長(zhǎng)度為 n |
| ltrim(str) | 去掉 str 行首的空格 |
| rtrim(str) | 去掉 str 行尾的空格 |
| trim(str) | 去掉 str 首尾的空格 |
| repeat(str,x) | 返回 str 重復(fù) x 次的結(jié)果 |
| replace(str,a,b) | 用字符串 b 替換 str 中所有出現(xiàn)的字符串 a |
| strcmp(s1,s2) | 比較字符串 s1 和 s2 的 ASCII 碼值的大小 |
| substring(str,x,y) | 返回從 str 的 x 位置起 y 個(gè)字符長(zhǎng)度的子串 |
-
concat()函數(shù)與 NULL 連接時(shí)返回 NULL -
insert()和substring()的位置從 1 開(kāi)始
數(shù)值函數(shù)
| 函數(shù) | 功能 |
|---|---|
| abs(x) | 返回 x 的絕對(duì)值 |
| ceil(x) | 向上取整 |
| floor(x) | 向下取整 |
| mod(x,y) | 取模 |
| rand() | 返回 0 ~ 1 內(nèi)的隨機(jī)數(shù) |
| round(x,y) | 返回 x 的四舍五入的有 y 位小數(shù)的值 |
| truncate(x,y) | 返回?cái)?shù)字 x 截?cái)酁?y 為小數(shù)的值 |
-
round()函數(shù) y 默認(rèn)為 0
日期和時(shí)間函數(shù)
| 函數(shù) | 功能 |
|---|---|
| curdate() | 返回當(dāng)前日期 |
| curtime() | 返回當(dāng)前時(shí)間 |
| now() | 返回當(dāng)前的日期和時(shí)間 |
| unix_timestamp(date) | 返回日期 date 的 unix 時(shí)間戳 |
| from_unixtime(timestamp) | 返回 unix 的時(shí)間戳的日期值 |
| week(date) | 返回日期 date 為一年中的第幾周 |
| year(date) | 返回 date 的年份 |
| hour(date) | 返回 date 的小時(shí) |
| minute(date) | 返回 date 的分鐘 |
| month(date) | 返回 month 的月份 |
| monthname(date) | 返回 date 的英文月份名 |
| date_format(date,fmt) | 返回按字符串 fmt 格式化日期 date 值 |
| date_add(date,interval expr type) | 返回一個(gè)日期或時(shí)間值加上一個(gè)時(shí)間間隔的日期值 |
| date_diff(expr,expr2) | 返回起始時(shí)間 expr 和結(jié)束時(shí)間 expr2 之間的天數(shù) |
unix_timestamp()和from_unixtime()函數(shù)互為逆操作-
date_format()格式符格式符 格式說(shuō)明 %s 和 %S 兩位數(shù)字形式的秒(00,01,...,59) %i 兩位數(shù)字形式的分(00,01,...,59) %H 兩位數(shù)字形式的小時(shí),24 小時(shí)(00,01,...,23) %h 和 %I 兩位數(shù)字形式的小時(shí),12 小時(shí)(01,02,...,12) %k 數(shù)字形式的小時(shí),24 小時(shí)(0,1,...,23) %l 數(shù)字形式的小時(shí),12 小時(shí)(1,2,...,12) %T 24 小時(shí)的時(shí)間形式(hh:mm:ss) %r 12 小時(shí)的時(shí)間形式(hh:mm:ssAM 或 hh:mm:ssPM) %p AM 或 PM %W 一周中每一天的名稱(Sunday,Monday,...,Saturday) %a 一周中每一天名稱的縮寫(xiě)(Sun,Mon,...,Sat) %d 兩位數(shù)字表示月中的天數(shù)(00,01,...,31) %e 數(shù)字形式表示月中的天數(shù)(1,2,...,31) %D 英文后綴表示月中的天數(shù)(1st,2nd,3rd,...) %w 以數(shù)字形式表示周中的天數(shù)(0=Sunday,1=Monday,...,6=Saturday) %j 以 3 位數(shù)字表示年中的天數(shù)(001,002,...,366) %U 周(0,1,52),其中 Sunday 為周中的第一天 %u 周(0,1,52),其中 Monday 為周中的第一天 %M 月名(January,February,...,December) %b 縮寫(xiě)的月名(Jan,Feb,...,Dec) %m 兩位數(shù)字表示的月份(01,02,...,12) %c 數(shù)字表示的月份(1,2,...,12) %Y 4 位數(shù)字表示的年份 %y 2 位數(shù)字表示的年份 %% 直接值 % -
date_add(date,interval expr type)函數(shù),interval 是間隔類(lèi)型關(guān)鍵字,expr 是表達(dá)式,對(duì)應(yīng)后面的類(lèi)型,type 是間隔類(lèi)型間隔類(lèi)型 描述 格式 hour 小時(shí) hh minute 分 mm second 秒 ss year 年 YY month 月 MM day 日 DD year_month 年和月 YY-MM day_hour 日和小時(shí) DD hh day_minute 日和分鐘 DD hh:mm day_second 日和秒 DD hh:mm:ss hour_minute 小時(shí)和分 hh:mm hour_second 小時(shí)和秒 hh:ss minute_second 分鐘和秒 mm:ss select date_add(now(),interval 1_2 year_month)
流程函數(shù)
| 函數(shù) | 功能 |
|---|---|
| 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)函數(shù)一般用來(lái)替換 null 值。當(dāng) value1 為 null 時(shí)返回 value2
其它常用函數(shù)
| 函數(shù) | 功能 |
|---|---|
| database() | 返回當(dāng)前數(shù)據(jù)庫(kù)名 |
| version() | 返回當(dāng)前數(shù)據(jù)庫(kù)版本 |
| user() | 返回當(dāng)前登錄用戶名 |
| inet_aton(IP) | 返回 IP 地址的數(shù)字表示 |
| inet_ntoa(num) | 返回?cái)?shù)字代表的 IP 地址 |
| password(str) | 返回字符串 str 的加密版本 |
| md5(str) | 返回字符串 str 的 md5 值 |