一,、字符串函數(shù)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中對應的函數(shù)是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中沒有對應的函數(shù),。 1.8、RPAD(str,len,padstr) 作用:用字符串padstr對str最右邊進行填充,,直到總長度達到len個字符為止,。 SELECT RPAD('abc',10,'def'); 說明:SQL Server中沒有對應的函數(shù),。 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中沒有對應的函數(shù),。 1.12、REPEAT(str,count) 作用:返回str重復count次的結果,。 SELECT REPEAT('abc',3); 說明:SQL Server中沒有對應的函數(shù),。 1.13、REPLACE(str,from_str,to_str) 作用:用字符串to_str替換字符串str中所有出現(xiàn)的字符串from_str,。 SELECT REPLACE('mysql','my','hello my'); 1.14,、SUBSTRING(str FROM pos FOR len) 作用:返回字符串str中第pos位置起len個字符長度的字符,。 SELECT SUBSTRING('abc',2,2); 二、數(shù)值函數(shù)2.1,、ABS(X) 作用:返回X的絕對值,。 SELECT ABS(-1); 2.2、CEILING(X) 作用:小數(shù)不為零部分向上取整,,即向上取最近的整數(shù),。 SELECT CEILING(1.1); 2.3、FLOOR(X) 作用:小數(shù)不為零部分向下取整,,即向下取最近的整數(shù),。 SELECT FLOOR(2.3); 2.4、MOD(N,M) 作用:返回N/M的模,,即求余,。 SELECT MOD(5,2); SELECT 5%2; 說明:SQL Server中沒有對應的函數(shù),只能通過%求余,。 SELECT 5%2 2.5,、RAND() 作用:返回0-1內(nèi)容的隨機值。 SELECT CEILING(RAND()*10); 三,、日期和時間函數(shù)3.1,、CURDATE() 作用:返回當前日期,只包含年月日,。 SELECT CURDATE();
說明:SQL Server中沒有對應的函數(shù),。 3.2、CURTIME() 作用:返回當前時間,,只包含時分秒,。 SELECT CURTIME();
說明:SQL Server中沒有對應的函數(shù)。 3.3,、NOW() 作用:返回當前日期和時間,,年月日時分秒都包含。 SELECT NOW();
說明:SQL Server中對應的函數(shù)是GETDATE,。 SELECT GETDATE() 3.4,、UNIX_TIMESTAMP() 作用: SELECT UNIX_TIMESTAMP();
說明:SQL Server中沒有對應的函數(shù)。 3.5,、FROM_UNIXTIME(unix_timestamp) 作用: SELECT FROM_UNIXTIME(1599560172); 說明:SQL Server中沒有對應的函數(shù),。 3.6、WEEK(date) 作用:返回當前是一年中的第幾周,。 SELECT WEEK(NOW());
說明:SQL Server中對應的函數(shù)是DATEPART,。 SELECT DATEPART(WEEK,GETDATE()) 3.7、YEAR(date) 作用:返回所給日期是哪一年。 SELECT YEAR(NOW()); 3.8,、HOUR(time) 作用:返回當前時間的小時,。 SELECT HOUR(NOW());
說明:SQL Server中對應的函數(shù)是DATEPART,。 SELECT DATEPART(HOUR,GETDATE()) 3.9,、MINUTE(time) 作用:返回當前時間的分鐘。 SELECT MINUTE(NOW());
說明:SQL Server中對應的函數(shù)是DATEPART,。 SELECT DATEPART(MINUTE,GETDATE()) 3.10,、DATE_FORMAT(date,format) 作用:用于以不同的格式顯示日期/時間數(shù)據(jù)。 SELECT DATE_FORMAT(NOW(),'%Y-%m-%d'); SELECT DATE_FORMAT(NOW(),'%Y%m%d'); SELECT DATE_FORMAT(NOW(),'%y%m%d'); 說明:SQL Server中對應的函數(shù)是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中對應的函數(shù)是DATEADD,。 SELECT DATEADD(DAY,3,GETDATE()) SELECT DATEADD(MONTH,1,GETDATE()) 3.12,、DATEDIFF(expr1,expr2) 作用:返回兩個日期之間的天數(shù)。 SELECT DATEDIFF('2020-06-06',NOW()); 說明:SQL Server中對應的函數(shù)是DATEDIFF,,不過結果是相反的,。 SELECT DATEDIFF(DAY,'2020-06-06',GETDATE()) 四、流程函數(shù)4.1,、IF(expr1,expr2,expr3) 作用:如果expr1是真,,返回expr2,否則返回expr3,。 SELECT IF(2>3,TRUE,FALSE); 說明:SQL Server中對應的函數(shù)是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中對應的函數(shù)是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 '評級'; 五、其它常用函數(shù)5.1,、DATABASE() 作用:返回當前數(shù)據(jù)庫名,。 SELECT DATABASE(); 說明:SQL Server中對應的函數(shù)是DB_NAME。 --方法一 SELECT DB_NAME() --方法二 SELECT NAME FROM MASTER..SYSDATABASES WHERE DBID=(SELECT DBID FROM MASTER..SYSPROCESSES WHERE SPID = @@SPID) 5.2,、VERSION() 作用:返回當前數(shù)據(jù)庫版本,。 SELECT VERSION();
5.3、USER() 作用:返回當前登錄用戶名。 SELECT USER(); 說明:SQL Server中對應的函數(shù)是SUSER_NAME,。 SELECT SUSER_NAME() 5.4,、PASSWORD(str) 作用:返回str的PASSWORD加密值。 SELECT PASSWORD('abc'); 說明:SQL Server中沒有對應的函數(shù),。 5.5,、MD5(str) 作用:返回str的MD5值。 SELECT MD5('abc'); 說明:SQL Server中對應的函數(shù)是HASHBYTES,。 SELECT HASHBYTES('MD5','abc')
|
|