天天看點

函數及自定義函數

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()))

繼續閱讀