MySQL常用函數 原

字符串函數 concat(a,b,c,...) 連接爲一個字符串 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) 去掉字符串str行尾和行頭的空格 repeat(str,x) 返回str重複x次的結果 replace(str,a,b) 用字符串b替換字符串str中所有出現的字符串a strcmp(s1,s2) 比較字符串s1和s2 substring(str,x,y) 返回字符串str x位置起y個字符長度的子串

數值函數 abs(x) 返回x的絕對值 ceil(x) 返回大於x的最小整數值 floor(x) 返回小於x的最大整數值 mod(x,y) 取模 rand() 返回0-1內的隨機數 round(x,y) 返回參數x的四捨五入的有y位小數的值 truncate(x,y) 返回數字x截斷爲y位小數的結果,不進行四捨五入

日期和時間函數 curdate() 返回當前日期 curtime() 返回當前時間 now() 返回當前的日期和時間 unix_timestamp(date) 返回日期date爲unix時間戳 from_unixtime(uxixtime) 返回unix時間戳的日期值 week(date) 返回日期date爲一年中的第幾周 year(date) 返回日期date的年份 hour(date) 返回time的小時值 minute(date) 返回time的分鐘值 monthname(date) 返回date的英文月份名稱 date_format(date,fmt) 返回按字符串fmt格式化日期date值 date_add(date, interval expr type) 返回一個日期或時間值加上一個時間間隔的時間值(返回與所給日期date相差interval時間段的日期) datediff(expr,expr2) 返回起始時間expr和結束時間expr2之間的天數(計算兩個日期之間相差的天數) SELECT UNIX_TIMESTAMP(NOW());

SELECT FROM_UNIXTIME(UNIX_TIMESTAMP(NOW()));

SELECT DATE_FORMAT(NOW(),'%M,%D,%Y')

SELECT NOW(), DATE_ADD(NOW(), INTERVAL 31 DAY), DATE_ADD(NOW(),INTERVAL '1_2' YEAR_MONTH);

SELECT NOW(), DATE_ADD(NOW(), INTERVAL -31 DAY), DATE_ADD(NOW(),INTERVAL '-1_-2' YEAR_MONTH);

SELECT DATEDIFF('2017-01-01',NOW());

date_format(date,fmt)函數,按照字符串fmt格式化日期date值,此函數能夠按指定的格式顯示日期,可以用到的格式符MySQL中的日期和時間格式 格式符 格式說明 %s 和 %S 兩位數字形式的秒(00,01,...,59) %i 兩位數字形式的分(00,01,...,59) %H 兩位數字形式的小時,24小時(00,01,...,23) %h 和 %I  i的大寫 兩位數字形式的小時,12小時(01,02,...,12) %k 數字形式的小時,24小時(0,1,...,23) %l   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 以三位數字表示年中的天數(001,002,...,366) %U 周(0,1,52),其中Sunday爲週中的第一天 %u 周(0,1,52),其中Monday爲週中的第一天 %M 月名(January,February,...,December) %b 所寫的月名(January,February,...,December) %m 兩位數字表示的月份(01,02,..,12) %c 數字表示的月份(1,2,...,12) %Y 4位數字表示的年份 %y 兩位數字表示的年份 %% 直接值%% SELECT DATE_FORMAT(NOW(), '%Y/%m/%d %T'); 

    date_add(date, interval expr type)   返回與所給日期date相差interval時間段的日期 interval是間隔類型關鍵字,expr是一個表達式,這個表達式對應後面的類型,type是間隔類型,共有13種間隔類型。 MySQL中的日期間隔類型 表達式類型 描述 格式 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 NOW(), DATE_ADD(NOW(), INTERVAL -61 DAY), DATE_ADD(NOW(),INTERVAL '1_15' 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 CREATE TABLE yan(id INT,salary DECIMAL(9,2)); INSERT INTO yan VALUES(1,1000),(2,2000),(3,3000),(4,4000),(5,5000),(1,NULL); SELECT IF(salary>2000, 'high', 'low') FROM yan;

SELECT IFNULL(salary, 0) FROM yan;

SELECT CASE salary WHEN 1000 THEN 'low' WHEN 2000 THEN 'mid' ELSE 'high' END AS grand FROM yan;

SELECT CASE WHEN salary<=2000 THEN 'low'WHEN salary<=4000 THEN 'mid' ELSE 'high' END AS grand FROM yan;

其他常用函數 database() 返回當前數據庫名 version() 返回當前數據庫版本 user() 返回當前登錄用戶名 inet_aton(ip) 返回ip地址的數字表示 inet_ntoa(num) 返回數字代表的ip地址 password(str) 返回字符串str的加密版本 md5() 返回字符串str的md5值 SELECT DATABASE(),VERSION(),USER(),INET_ATON('192.168.1.0'),INET_NTOA(3232235776),PASSWORD('123123'),MD5('123123');

CREATE TABLE tip(ip VARCHAR(20)) INSERT INTO tip VALUES('192.168.1.1'),('192.168.1.2'),('192.168.1.23'),('192.168.1.11'),('192.168.1.6'),('192.168.1.90'),('192.168.1.111'); 查找在192.168.1.2和192.168.1.89之間的的ip SELECT ip FROM tip WHERE INET_ATON(ip)>=INET_ATON('192.168.1.2') AND INET_ATON(ip)<=INET_ATON('192.168.1.89');

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章