1. 程式人生 > >MySQL 常用函數

MySQL 常用函數

mysql

1.字符串類函數

(1)CONCAT(s1,s2,s3,.....) 連接字符串

例如:SELECT CONCAT(‘1‘,‘2‘) FROM DUAL;

輸出:12

(2)LOWER(s) 將字符串全部變成小寫

例如:SELECT LOWER(‘ABC‘) FROM DUAL;

輸出:abc

(3)UPPER(s) 將字符串全部變成大寫

例如:SELECT UPPER(‘abc‘) FROM DUAL;

輸出:ABC

(4)LTRIM(s) 去除字符串左側的空格

例如:select LTRIM(‘ abc‘) from dual;

輸出:abc

(5)RTRIM(s) 去除字符串右側的空格

例如:select LTRIM(‘abc ‘) from dual;

輸出:abc

(6)TRIM(s) 去除字符串左右兩側的空格

例如:select LTRIM( ‘abc ‘) from dual;

輸出:abc

(7)LPAD(s,len,pad) 用字符串pad來對s左側進行填充,直至長度達到len

例如:SELECT LPAD(‘1‘,5,‘0‘) FROM DUAL;

輸出:00001

(8)RPAD(s,len,pad) 用字符串pad來對s右側進行填充,直至長度達到len

例如:SELECT RPAD(‘1‘,5,‘0‘) FROM DUAL;

輸出:10000

(9)REPEAT(s,x) 將s重復x後返回

例如:select REPEAT(‘a‘,5) from dual;

輸出:aaaaa

(10)REPLACE(s,form,target) 將字符串中包含form的字符替換成target

例如:SELECT REPLACE(‘abc‘,‘a‘,‘A‘) FROM DUAL;

輸出:Abc

(11)STRCMP(s1,s2) 比較s1與s2,如果相同返回0,s2大於s1返回1,s2小於s1返回-1

例如:SELECT STRCMP(‘a‘,‘b‘),STRCMP(‘a‘,‘a‘),STRCMP(‘b‘,‘a‘) FROM DUAL;

輸出:-1 0 1

(12)LEFT(s,x) 返回字符串左側x個字符

例如:SELECT LEFT(‘abc‘,2) FROM DUAL;

輸出:ab

(13)RIGHT(s,x) 返回字符串右側x個字符

例如:SELECT RIGHT(‘abc‘,2) FROM DUAL;

輸出:bc

(14)MID(s,x,y) 返回字符串x位置開始y個字符

例如:SELECT MID(‘abcd‘,3,2) FROM DUAL;

輸出:cd

(15)SUBSTRING(s,x,y) 返回字符串x位子開始y個字符,與MID基本一樣

例如:SELECT SUBSTRING(‘abcd‘,3,2) FROM DUAL;

輸出:cd

(16)INSERT(s,x,y,form) 將字符串x位置開始y個字符替換成form字符

例如:SELECT INSERT(‘abcd‘,3,2,‘FF‘) FROM DUAL;

輸出:abFF

(17)LENGTH(s) 返回s的長度

例如:SELECT LENGTH(‘123‘) FROM DUAL;

輸出:3

(18)REVERSE(s) 返回s顛倒順序

例如:SELECT REVERSE(‘abc‘) FROM DUAL;

輸出:cba

2.數字類函數

(1)CEIL(n) 返回大於n最大的整數

例如:SELECT CEIL(100.1) FROM DUAL;

輸出:101

(2)FLOOR(n) 返回小於n最大的整數

例如:SELECT CEIL(100.1) FROM DUAL;

輸出:100

(3)RAND() 返回0到1的隨機數

例如:SELECT RAND() FROM DUAL;

輸出:0.13824381133377908

(4)ROUND(n,y) 將n四舍五入保留y位小數

例如:SELECT ROUND(10.127,2) FROM DUAL;

輸出:10.13

(5)TRUNCATE(n,y) 將n保留y位小數

例如:SELECT TRUNCATE(10.1277777,2) FROM DUAL;

輸出:10.12

3.日期類函數

(1)NOW() 返回當前日期時間

例如:SELECT NOW() FROM DUAL;

輸出:2017-06-06 20:44:58

2)CURDATE() 返回當前日期

例如:SELECT CURDATE() FROM DUAL;

輸出:2017-06-06

3)CURTIME() 返回當前時間

例如:select CURTIME() from dual;

輸出:20:46:15

4)WEEK(date) 返回日期為一年中的周

例如:SELECT WEEK(‘2017-06-06‘) FROM DUAL;

輸出:23

5)YEAR(date) 返回日期中的年

例如:SELECT YEAR(‘2017-06-06‘) FROM DUAL;

輸出:2017

6)DATE_FORMAT(s,pattern) 格式化日期

例如:SELECT DATE_FORMAT(NOW(),‘%Y%m%d‘) FROM DUAL;

輸出:20170606

格式化參數:

%y 表示兩位數字年份。例如:(2017返回17)

%Y 表示四位數字年份。例如:(2017返回2017)

%m 表示兩位數字月份。例如:(01,02,....,12)

%c 表示數字的月份。例如:(1,2,3,4.....,12)

%M 表示月明,英文名稱。

%d 表示兩位數字的天數。例如:(01,02,03,.....31)

%e 表示數字的天數。例如(1,2,3,4,.....,31)

%H 表示兩位數字的小時數,24小時制。例如:(01,02,.....,24)

%i 表示兩位數字的分鐘數。例如:(01,02...,60)

%S %s 表示兩位數字的秒數。例如:(01,02...,60)

7)DATEDIFF(d1,d2) 返回d1與d2相差的天數

例如:SELECT DATEDIFF(‘2017-06-07‘,‘2017-06-06‘) FROM DUAL;

輸出:1

8)DATE_ADD(d,INTERVAL y type) 給日期加上指定類型y值

例如:select DATE_ADD(‘2017-06-07‘,Interval 1 month) from dual;

輸出:2017-07-07

Type參數:

YEAR 表示年

MONTH 表示月

DAY 表示日

HOUR 表示小時

MINUTE 表示分鐘

SECOND 表示秒

(9)TO_DAYS(date) 返回date從0年以來的天數。

4.流程控制類函數

(1)IF(v,t,f) 如果v為真返回t,否則返回f

例如:SELECT IF(1!=1,‘1‘,‘2‘) FROM DUAL;

輸出:2

(2)IFNULL(v1,v2) 如果v1不為null返回v1,否則返回v2

例如:SELECT IFNULL(NULL,‘1‘) FROM DUAL;

輸出:1

(3)CASE WHEN v then v1 end 判斷如果v為真返回v1

例如:SELECT CASE WHEN 1=1 THEN ‘true‘ ELSE ‘false‘ END FROM DUAL;

輸出:true

例如:SELECT CASE WHEN 1!=1 THEN ‘true‘ WHEN 2=2 THEN ‘test‘ ELSE ‘false‘ END FROM DUAL;

輸出:test

5.轉換類函數

(1)CAST(v as type) 轉換數據類型。

Type參數:

字符型:CHAR

日期:DATE

時間:TIME

日期時間型:DATETIME

浮點數:DECIMAL

整數:SIGNED

無符號整數:UNSIGNED

6.數據庫類函數

(1)DATABASE() 返回當前數據庫名稱

2)VERSION() 返回當前數據庫版本

3)INET_ATON(ip) 返回數字表示的IP

4)INET_NTOA(num) 將數字表示的IP轉換為IP

5)PASSWORD(s) 返回加密版本

6)MD5(s) 返回MD5加密值


MySQL 常用函數