字符串函數
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還有好多函數,在這裏就不多介紹了,如果大家還想了解更多的函數可以去網上百度下,我也在學習階段,不可能所有的函數都會使用,我把我學到的分享給大家,希望對大家學習有幫助。