1. 程式人生 > >Mysql中的常用函數:

Mysql中的常用函數:

匹配 fin cond unixtime 取數 lec mysq 去除 mil

Mysql中的常用函數: 1.字符串函數: (1).合並字符串 concat():// concat(‘M‘,‘y‘,"SQL",‘5.5‘);== MySQL5.5//當傳入的參數有一個值為NULL,返回的結果值為NULL concat_ws();// 指定分隔符插入到字符串中:concat_ws(":",‘2017‘,‘09‘);==2017:09,但如果分隔符是NULL的話,結果就為NULL,參數是NULL,不影響結果 (2).比較字符串大小的函數: select strcmp(字符串1,字符串2);大於返回1,小於返回-1,等於返回0 (3).獲取字符串長度的函數: length(); // 計算空格,指的是傳入參數的長度(字節長度),一個漢字是兩個字節. char_length();// 傳入參數的字符數(字符長度) (4).字母大小寫轉換函數: UPPER();或者是UCASE()轉化為大寫 LOWER(); (5).查找字符串: select FIND_IN_SET(查找字符串,目標字符串集合);// 返回字符串位置的函數,目標字符串是以逗號分割的字符串集合,下標從1開始 select FIELD(查找字符串,目標字符串1,目標字符串2,...........);// 返回字符串位置的函數 LOCATE(str1,str);// 返回str中字符串str1的開始位置 POSITION(str1 IN str);// 返回str中字符串str1的開始位置 INSTR(str,str1); // 返回str中字符串str1的開始位置 ELT(n,str1,str2......,strn);// 返回第n個字符串 MAKE_SET(num,str1,str2,...strn) ;// 先將數值num轉化為二進制,然後按照二進制數從參數str1,str2,....,strn中選取相應的字符串 例子:select BIN(5) as 二進制數,MAKE_SET(5,‘MYSQL‘,‘ORACLE‘,‘SQL SERVER‘,‘POSTGRESQL‘) as 選取後的字符串;// 結果為MYSQL,SQL SERVER (6).截取字符串函數: LEFT(str,num);// 從左邊截取,字符串是str,長度是num RIGHT(str,num);// 從右邊截取,字符串是str,長度是num SUBSTRING(str,num,len);// 字符串是str,從num位置開始,長度是len,包含num位置 MID(str,num,len);// 字符串是str,從num位置開始,長度是len,包含num位置 (7),去除字符串的首尾空格: LTRIM(str);// 去除字符串開始處空格 RTRIM(str);// 去除字符串結束處空格 TRIM(str);// 去除字符串首尾空格 (8).替換字符串函數: INSERT(str,pos,len,newstr);// str是原字符串,pos是需要替換的開始位置,len是替換的長度(根據需要來定),newstr是替換的新字符串 REPLACE(str,substr,newstr);// str是原字符串,substr是需要替換的字符串,newstr是替換substr的字符串,替換所有匹配的字符串 註意:比較以下兩個結果: select replace("THIS IS TEST STRING","IS","IS NOT");// THIS NOT IS NOT TEST STRING,不區分單詞,切記 select replace("THIS IS TEST STRING"," IS "," IS NOT ");//THIS IS NOT TEST STRING 2.數值函數: (1).獲取隨機數: RAND(); // 返回的數完全隨機 RAND(x); // x表示數字,返回的隨機數值是相同的(確定的) (2).獲取整數的函數: CEIL(x);// 上取整 FLOOR(x);// 下取整 (3).截取數值函數: TRUNCATE(x,y);// x表示要截取的數值,y表示小數點後幾位,也就是保留幾位小數,是直接舍去,而不是四舍五入. (4).四舍五入函數: ROUND(x); ROUND(x,y);// 返回數值x保留到小數點後y位 3.日期函數: (1).獲取當前日期和時間函數: now();// 當前日期和時間 locatime();// 當前日期和時間 current_timestamp();// 當前日期和時間 SYSDTAE();// 當前日期和時間 (2).當前日期: curdate();// 當前日期 current_date();// 當前日期 (3).當前時間: curtime(); current_time(); (4).各種方式顯示日期和時間: unix_timestamp(日期類型的字符串);// 將日期類型的字符串轉化為整形(秒數),UNIX格式 from_unixtime("整形");// 將整形字符串轉化為日期,普通格式 UTC_DATE();// utc日期,只有日期 UTC_TIME();// utc時間 ,只有時間 (5).獲取日期和時間各部分值: SELECT NOW() 當前日期和時間,
YEAR(NOW()) 年, QUARTER(NOW()) 季度, MONTH(NOW()) 月, WEEK(NOW())星期, DAYOFMONTH(NOW()) 天, HOUR(NOW()) 小時, MINUTE(NOW()) 分, SECOND(NOW()) 秒; (6).月(參數都是日期類型的字符串): MONTH(date); MONTHNAME(date); (7).星期: week(date);// 年中第幾個星期 weekofyear(date);// 年中第幾個星期 dayname(date);// 星期,英文顯示 dayofweek(date);// 星期(不理解,用下面的) weekday(date);// 星期,數字表示 (8).天 dayofyear(date);// 年中的第幾天 dayofmonth(date);// 月中的第幾天 (9).EXTRACT函數 EXTRACT(YEAR from NOW()); // 年 EXTRACT(month from NOW()); // 月 EXTRACT(day from NOW()); // 日 EXTRACT(hour from NOW()); // 時 EXTRACT(minutefrom NOW()); // 分 EXTRACT(second from NOW()); // 秒 (10).計算日期和時間的函數: SELECT NOW() 當前日期和時間,
TO_DAYS(NOW()) 相隔天數, // 距離0000年1月1日 FROM_DAYS(TO_DAYS(NOW())) 一段時間後日期和時間, DATEDIFF(NOW(),‘2000-12-01‘) 相隔天數; (11).與指定日期和時間操作: ADDDATE(date,n); // 計算date加上n天後的日期 SUBDATE(date,n); // 計算date減去n天後的日期 ADDDATE(d,INTERVAL expr type);// type的類型查看http://www.w3school.com.cn/sql/func_date_add.asp SUBDATE(d,INTERVAL expr type); 例子: select adddate(now(),interval ‘2,3‘ year_month ) ‘2年3個月後的日期‘; 4.系統信息函數 (1).獲取MySQL系統信息: 使用\h SELECT VERSION() 版本號,
DATABASE() 數據庫名, USER() 用戶名; (2).獲取自增長約束的最後ID值 SELECT LAST_INSERT_ID(); (3).其他函數:
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
PASSWORD(str) 實現對字符串str進行加密
FORMAT(x,n) 實現將數字x進行格式化,保留n位小數
INET_ATON(ip) 實現將IP地址轉換成數字
INET_NTOA(x) 實現將數字轉換成IP
GET_LOCT(name,time) 創建一個持續時間為time的名為name的鎖
RELEASE_LOCT(name) 為名為name的鎖進行解鎖
BENCHMARK(count,expr) 實現將表達式重復執行count次
CONVERT(s USING cs) 實現將字符串s的字符集變成cs
CONVERT(x,type) 實現將x變成type類型

Mysql中的常用函數: