一、字串函式
1.1、CONCAT(str1,str2,...)
作用:將傳入的字符連接成一個字串,任何字符與null進行連接結果都是null,
SELECT CONCAT(`name`,'-',sex) FROM study11;
1.2、INSERT(str,pos,len,newstr)
作用:將字串str從pos位置開始len個字符長的子串,替換為指定的字符newstr,
SELECT INSERT('ABCDEFG',2,3,'XXX');
說明:SQL Server中對應的函式是STUFF,
SELECT STUFF('ABCDEFG',2,3,'XXX')
1.3、LOWER(str)
作用:將字串轉成小寫,
SELECT LOWER('ABC');
1.4、UPPER(str)
作用:將字串轉成大寫,
SELECT UPPER('abc');
1.5、LEFT(str,len)
作用:回傳字串str最左邊的len個字符,
SELECT LEFT('abc',2);
1.6、RIGHT(str,len)
作用:回傳字串str最右邊的len個字符,
SELECT RIGHT('abc',2);
1.7、LPAD(str,len,padstr)
作用:用字串padstr對str最左邊進行填充,直到總長度達到len個字符為止,
SELECT LPAD('abc',10,'def');
說明:SQL Server中沒有對應的函式,
1.8、RPAD(str,len,padstr)
作用:用字串padstr對str最右邊進行填充,直到總長度達到len個字符為止,
SELECT RPAD('abc',10,'def');
說明:SQL Server中沒有對應的函式,
1.9、LTRIM(str)
作用:去除字串當中最左側的空格,
SELECT LTRIM(' abc');
1.10、RTRIM(str)
作用:去除字串當中最右側的空格,
SELECT RTRIM('abc ');
1.11、TRIM([remstr FROM] str)
完整格式:TRIM([{BOTH | LEADING | TRAILING} [remstr] FROM] str)
作用:回傳字串str,其中所有remstr前綴和/或后綴都已被去除,若分類符BOTH、LEADIN或TRAILING中沒有一個是給定的,則假設為BOTH,remstr為可選項,在未指定情況下,可去除空格,
1)去除兩側空格,
SELECT TRIM(' abc ');
2)去除兩側'x'字符,
SELECT TRIM(BOTH 'x' FROM 'xxxbarxxx');
3)去除左側'x'字符,
SELECT TRIM(LEADING 'x' FROM 'xxxbarxxx');
4)去除右側'x'字符,
SELECT TRIM(TRAILING 'x' FROM 'xxxbarxxx');
5)去除右側'xyz'字串,
SELECT TRIM(TRAILING 'xyz' FROM 'barxyzxyz');
說明:SQL Server中沒有對應的函式,
1.12、REPEAT(str,count)
作用:回傳str重復count次的結果,
SELECT REPEAT('abc',3);
說明:SQL Server中沒有對應的函式,
1.13、REPLACE(str,from_str,to_str)
作用:用字串to_str替換字串str中所有出現的字串from_str,
SELECT REPLACE('mysql','my','hello my');
1.14、SUBSTRING(str FROM pos FOR len)
作用:回傳字串str中第pos位置起len個字符長度的字符,
SELECT SUBSTRING('abc',2,2);
二、數值函式
2.1、ABS(X)
作用:回傳X的絕對值,
SELECT ABS(-1);
2.2、CEILING(X)
作用:小數不為零部分向上取整,即向上取最近的整數,
SELECT CEILING(1.1);
2.3、FLOOR(X)
作用:小數不為零部分向下取整,即向下取最近的整數,
SELECT FLOOR(2.3);
2.4、MOD(N,M)
作用:回傳N/M的模,即求余,
SELECT MOD(5,2); SELECT 5%2;
說明:SQL Server中沒有對應的函式,只能通過%求余,
SELECT 5%2
2.5、RAND()
作用:回傳0-1內容的隨機值,
SELECT CEILING(RAND()*10);
三、日期和時間函式
3.1、CURDATE()
作用:回傳當前日期,只包含年月日,
SELECT CURDATE();
說明:SQL Server中沒有對應的函式,
3.2、CURTIME()
作用:回傳當前時間,只包含時分秒,
SELECT CURTIME();
說明:SQL Server中沒有對應的函式,
3.3、NOW()
作用:回傳當前日期和時間,年月日時分秒都包含,
SELECT NOW();
說明:SQL Server中對應的函式是GETDATE,
SELECT GETDATE()
3.4、UNIX_TIMESTAMP()
作用:
SELECT UNIX_TIMESTAMP();
說明:SQL Server中沒有對應的函式,
3.5、FROM_UNIXTIME(unix_timestamp)
作用:
SELECT FROM_UNIXTIME(1599560172);
說明:SQL Server中沒有對應的函式,
3.6、WEEK(date)
作用:回傳當前是一年中的第幾周,
SELECT WEEK(NOW());
說明:SQL Server中對應的函式是DATEPART,
SELECT DATEPART(WEEK,GETDATE())
3.7、YEAR(date)
作用:回傳所給日期是哪一年,
SELECT YEAR(NOW());
3.8、HOUR(time)
作用:回傳當前時間的小時,
SELECT HOUR(NOW());
說明:SQL Server中對應的函式是DATEPART,
SELECT DATEPART(HOUR,GETDATE())
3.9、MINUTE(time)
作用:回傳當前時間的分鐘,
SELECT MINUTE(NOW());
說明:SQL Server中對應的函式是DATEPART,
SELECT DATEPART(MINUTE,GETDATE())
3.10、DATE_FORMAT(date,format)
作用:用于以不同的格式顯示日期/時間資料,

SELECT DATE_FORMAT(NOW(),'%Y-%m-%d'); SELECT DATE_FORMAT(NOW(),'%Y%m%d'); SELECT DATE_FORMAT(NOW(),'%y%m%d');
說明:SQL Server中對應的函式是CONVERT,
SELECT CONVERT(VARCHAR(10),GETDATE(),120) SELECT CONVERT(VARCHAR(10),GETDATE(),112) SELECT CONVERT(VARCHAR(10),GETDATE(),12)
3.11、DATE_ADD(date,INTERVAL expr unit)
作用:向日期添加指定的時間間隔,

SELECT DATE_ADD(NOW(),INTERVAL 3 DAY); SELECT DATE_ADD(NOW(),INTERVAL 1 MONTH);
說明:SQL Server中對應的函式是DATEADD,
SELECT DATEADD(DAY,3,GETDATE()) SELECT DATEADD(MONTH,1,GETDATE())
3.12、DATEDIFF(expr1,expr2)
作用:回傳兩個日期之間的天數,
SELECT DATEDIFF('2020-06-06',NOW());
說明:SQL Server中對應的函式是DATEDIFF,不過結果是相反的,
SELECT DATEDIFF(DAY,'2020-06-06',GETDATE())
四、流程函式
4.1、IF(expr1,expr2,expr3)
作用:如果expr1是真,回傳expr2,否則回傳expr3,
SELECT IF(2>3,TRUE,FALSE);
說明:SQL Server中對應的函式是IIF,
SELECT IIF(2>3,1,0)
4.2、IFNULL(expr1,expr2)
作用:如果expr1不為空,回傳expr1,否則回傳expr2,
SELECT IFNULL('abc','def'); SELECT IFNULL(NULL,'def');
說明:SQL Server中對應的函式是ISNULL,
SELECT ISNULL('abc','def') SELECT ISNULL(NULL,'def')
4.3、CASE WHEN THEN END
作用:查詢滿足多種條件的情況,
/*寫法一*/ #用戶變數,需使用@符號,也可以定義為SELECT @sex:='male'; SET @sex='male'; SELECT CASE @sex WHEN 'male' THEN '男' ELSE '女' END AS '性別'; /*寫法二*/ SET @score=90; SELECT CASE WHEN @score BETWEEN 90 AND 100 THEN 'A+' WHEN @score BETWEEN 80 AND 89 THEN 'A' WHEN @score BETWEEN 60 AND 79 THEN 'B' ELSE 'C' END AS '評級';
五、其它常用函式
5.1、DATABASE()
作用:回傳當前資料庫名,
SELECT DATABASE();
說明:SQL Server中對應的函式是DB_NAME,
--方法一 SELECT DB_NAME() --方法二 SELECT NAME FROM MASTER..SYSDATABASES WHERE DBID=(SELECT DBID FROM MASTER..SYSPROCESSES WHERE SPID = @@SPID)
5.2、VERSION()
作用:回傳當前資料庫版本,
SELECT VERSION();
5.3、USER()
作用:回傳當前登錄用戶名,
SELECT USER();
說明:SQL Server中對應的函式是SUSER_NAME,
SELECT SUSER_NAME()
5.4、PASSWORD(str)
作用:回傳str的PASSWORD加密值,
SELECT PASSWORD('abc');
說明:SQL Server中沒有對應的函式,
5.5、MD5(str)
作用:回傳str的MD5值,
SELECT MD5('abc');
說明:SQL Server中對應的函式是HASHBYTES,
SELECT HASHBYTES('MD5','abc')
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/1115.html
標籤:MySQL
上一篇:in多值優化
下一篇:事務的本質和死鎖的原理
