5.函數介紹

字符串函數

ASCII ( 字符表達式 )    ASCII 函數,返回字符串表達式中最左端字符的 ASCII 碼值
CHAR ( 整型表達式 )    ASCII 碼值轉換爲相對應的字符,參數爲介於 0~255 之間的 整數。沒有輸入 0~255 之間的 ASCII 碼值則 CHAR() 返回 NULL
LEN ( 字符表達式 )    字符串長度函數,返回字符串表達式中字符的個數
LOWER ( 字符表達式 ) 小寫字母函數,將大寫字母轉換爲小寫字母,返回表達式的 小寫字母表示
UPPER ( 字符表達式 ) 大寫字母函數,返回指定表達式的大寫字母表示
REPLACE ( 字符表達式 1 字符表達式 2 ,字符表達 3) 字符替換函數,用第三個表達式替換第一個字符串表達式中 包含的所有第二個字符表達式,幵返回替換後的表達式
LEFT ( 字符表達式, n) 左子串函數,返回從字符串左邊開始的 n 個字符
RIGHT ( 字符表達式, n) 右子串函數,返回從字符串右邊開始的 n 個字符
LTRIM ( 字符表達式 ) 刪除頭部的空格函數,返回刪除了前導空格的字符表達式
RTRIM ( 字符表達式 ) 刪除尾隨空格函數,返回刪除所有尾隨空格的字符表達式
STR ( 數值表達式 [ ,長 n [ ,小數位 ]]) 數字向字符轉換函數,返回由數字轉換過來的字符串,長度 用於指定總長度,包括小數點,小數位指小數點右邊的位數
 
--【例】使用常用字符串函數計算A的ASCII碼,‘hello’的前3個字符,‘數據庫原理’字符串的長度,將‘hello轉換爲大寫字母,將‘英語四級’改爲‘英語六級’。
select N'A的ASCII'=ASCII('A'),
            N'hello的前三個字符'=LEFT('hello',3),
            N'數據庫原理的長度'=LEN(N' 數據庫原理'),
            N'將hello轉換爲大寫字母'=UPPER('hello'),
            N'將英語四級改爲六級'=Replace(N' 英語四級',N'四',N'六')
 
 
--STR函數:將數值表達式的值轉換爲字符串,轉換時自動四捨五入。默認長度爲10,若不指定小數位則保留到整數位,如果長度小於數值表達式值的整數位數,則返回一串*號。
print '(0)123456789'
print '(1)'+str(123.456,7,3)
print '(2)'+str(123.456,3,0)
print '(3)'+str(123.456,2,0)
print '(4)'+str(123.456,9,2)
print '(5)'+str(123.456,10,5)
print '(6)'+str(123.456)
 
 
數學函數
 
ABS ( 數值表達式 ) 絕對值函數,返回數值表達式的絕對值
ACOS ( 實型表達式 反餘弦函數,返回一個餘弦值對應的角度。角度以弧度表示, 實型表達式取值範圍從 -1~1 ,若參數超過此範圍,函數返回 NULL 幵報告錯誤
SIN ( 數值表達式 ) 正弦函數,返回表達式中以弧度表示的指定角的正弦值
COS ( 數值表達式 ) 餘弦函數,返回表達式中以弧度表示的指定角的餘弦值
TAN ( 數值表達式 ) 正切函數,返回指定表達式中以弧度表示的指定角的正切值
EXP ( 數值表達式 ) 指數函數,返回表達式的指數值
LOG ( 數值表達式 ) 自然對數函數,返回表達式的自然對數值
PI () 圓周率函數,返回 14 位小數的圓周率常量值
RAND () 隨機函數,隨機返回 0~1 之間的 float 數值
SIGN ( 數值表達式 ) 符號函數,返回表達式的正號、零或負號
SQRT ( 數值表達式 ) 平方根函數,返回表達式的平方根

select N'絕對值函數'=ABS(-5.6),
          N'圓周率函數'=PI(),
          N'平方根函數'=SQRT(64),
          N'隨機函數'=RAND(),
          N'對數函數LOGIO'=LOG10(100),
          N'地然對數函數LOG(2.71828)'=LOG(2.71828),
          N'指數函數'=LOG(EXP(2.71828))

 

數據類型轉換函數

--SQL Server會自動完成數據類型的轉換,這種轉換稱隱式轉換。但有些類型就不能自動轉換,如int整型與char型,這時就要顯式轉換函cast、convert
--CAST(表達式 AS 數據類型[(長度)]) CONVERT(數據類型[(長度)],表達式[,樣式])
--長度:如果數據類型允許設置長度,可以設置長度,例如varchar(10);
--樣式:用於將日期類型數據轉換爲字符數據類型的日期格式的樣式。

select CAST(1314.521+6 as int),CONVERT(int,521.1314)

 

日期和時間函數

GETDATE ( 日期時間型數據 ) 以標準格式返回本地服務器的 DATETIME
DAY ( 日期時間型數據 ) 返回指定日期的日期值
MONTH ( 日期時間型數據 ) 返回指定日期的月份值
YEAR ( 日期時間型數據 ) 返回指定日期的年份值
DATEADD ( 時間間隔,數值表達 式,日期 ) DATETIME 值添加間隔。時間間隔項決定時間 間隔的單位,可取 Year Day of year( 一年的日數 ) Quarter Month Day Week Weekday( 一週的 日數 ) Hour Minute Second Millisecond 。數
值表達式爲加上或者減去的時間間隔
DATEDIFF ( 時間間隔,日期 1, 日期 2) 計算兩個指定日期之間指定時間間隔的差,返回數 值型數據。時間間隔項決定時間間隔的單位,取值 DATEADD 中的時間間隔項相同
 
--例:使用日期和時間函數顯示當前日期,在當前日期後10天的日期,當前日期與2020年4月01日相隔的天數。
select N'顯示當前系統日期'=GETDATE(),
          N'在當前日期後10天的日期'=DATEADD(day,10,GETDATE()),
          N'當前日期與2020年4月1日相隔的天數'=DATEDIFF(DAY,GETDATE(),'2020-4-01')
 
系統函數
 
--用戶可以在需要時通過系統函數獲取當前主機名稱、用戶名稱、數據庫名稱及系統錯誤信息。
--(1)函數HOST_NAME()返回服務器端計算機的名稱。
-- (2) 函數OBJECT_NAME()返回數據庫對象的名稱。
--(3) 函數USER_NAME()返回數據庫用戶名。
--(4) 函數SUSER_NAME()返回用戶登錄名
--(5) 函數DB_NAME()返回數據庫名
 
select '計算機名'=HOST_NAME(),
          '登錄名'=SUSER_NAME(),
          '數據庫名'=DB_NAME(),
          '數據庫用戶名'=USER_NAME()
 
sqlserver還有好多函數,在這裏就不多介紹了,如果大家還想了解更多的函數可以去網上百度下,我也在學習階段,不可能所有的函數都會使用,我把我學到的分享給大家,希望對大家學習有幫助。