SQL Server中的函數(字符串函數,日期函數,數學函數,系統函數)
字符串函數(用于控制返回給用戶的字符串)
1.charindex 尋找一個指定的字符串在另一個字符串中的起始位置??? select charindex ('JBNS','my Jbns course',1)返回:4
2.len?????? 返回傳遞給它的字符串長度??????????????? selectlen("sql server課程")返回:12
3.upper???? 把傳遞給它的字符串轉換為大些??????????? selectupper('sql server課程')返回:SQL SERVER課程
4.Ltrim???? 清除字符左邊的空格????????????????????? selectltrim(' 周智宇 ')返回:周智宇 (后面的空格保留)
5.Rtrim???? 清除字符右邊的空格????????????????????? selectRtrim(' 周智宇 ')返回:? 周智宇(前面的空格保留)
6.Right???? 從字符串右邊返回指定數目的字符????????? selectRight('買賣提,吐爾松',3)返回:吐爾松
7.replace?? 替換一個字符串中的字符????????????????? selectReplace('莫樂可切,楊可',‘可’,‘蘭’) 返回:莫樂蘭切.楊蘭
8.stuff? 在一個字符串中,刪除指定長度的字符,并在該位置插入一個新的字符串? selectstuff('ABCDEFG',2,3,'我的音樂我的世界') 返回:A我的音樂我的世界EFG
日期函數(用于操作日期值)
1.getdate??? 取得當前的系統日期??? select getdate()返回:今天的日期
2.dateadd??? 將指定的數值添加到指定的日期部分后的日期?? select dateadd(mm,4,'01/01/2009')返回:以當前的日期格式返回05/01/2009
3.datediff??? 兩個日期之間的指定日期部分的間隔?????????? select dateiff(mm,'01/01/2009','05/01/2009')返回:4
4.datename?? 日期中指定日期部分的字符串形式????? select datename(dw,'01/01/2000')返回;saturday或星期六
5.datepart?? 日期中指定日期部分的整數形式??????? select datepart(day,'01/15/2000')返回:15
數學函數(用于對數值進行代數運算)
1.rand?????? 返回從0到1之間的隨機float值???????? select rand()返回:0.79288062146374
2.abs??????? 取數值表達式的絕對值??????????????? select abs(-43)返回:43
3.ceiling??? 取大于或等于指定數值,表達式的最小整數? select ceiling(43.5)返回:44
4.floor????? 取小于或等于指定表達式的最大整數?????? select floor(43.5)返回:43
5.power????? 取數值表達式的冪值?????????????????? select power(5,2)返回:25
6.round????? 將數值表達式四舍五入為指定精度?????? select round (43.543,1)返回:43.500
7.sign?????? 對于整數返回+1,對于負數返回-1,對于0則返回0? select sign(-43)返回:-1
8.sqrt?????? 取浮點表達式的平方根????????????????? select sqrt(9)返回:3
系統函數(獲取有關SQL Server中對象和設置的系統信息)
1.convert????? 用來轉變數據類型???????? select convert(varchar(5),12345)返回:字符串12345
2.current_user? 返回當前用戶的名字????? selectCurrent_user 返回:你登錄的用戶名
3.datalength??? 返回用于指定表達式的字節數?? select datalength('中國A聯盟') 返回:5
4.host_name???? 返回當前用戶所登錄的計算機名字?? select host_name()返回:你所登錄的計算機的名字
5.system_user?? 返回當前所登錄的用戶名稱???????? select system_user返回:你當前所登錄的用戶名
6.user_name????? 從給定的用戶ID返回用戶名??????? select user_name(1)返回:從任意數據庫中返回”dbo“
例:
1.年滿20周歲的條件 ?datediff(dd,borndate,getdate())>=365*20
2.獲取Email的域名 ?right(Email,len(Email) - charindex('@',Email))
3.獲取當前日期的年,月,日 ?convert(varchar(4),datepart(YYYY,getdate()))