SQL Server 常用函數總結


SQL去空格函數

1、ltrim(‘內容’)--去掉字符左邊的空格 代碼如下

declare @str varchar(100)
set @str='  ADFADF'
select  @str
select ltrim(@str)

ltrim

2、rtrim(‘內容’)---去掉列值右邊的空格 ---作用和LTRIM()一樣,這里不做介紹

3、ltrim(rtrim('內容')):去掉字符串左邊和右邊的空格

4、replace(計算字段,' ','')---去掉計算字段列值中所有的空格,如下代碼:

declare @str varchar(100)
set @str='Hello   Work'
select  @str
select REPLACE(@str,' ','')

 

replace

SQL常用函數

1、left()      ---返回字符串左邊的字符:代碼如下

declare @str varchar(100)
set @str='HelloWork'
select  @str
select left(@str,2)
left

2、right()   ---返回字符串右邊的字符

用法和LEFT()方法相反

3、substring( expression, start, length ) --返回從字符串expression左邊第start個字符起length個字符的部分。

declare @str varchar(100)
set @str='hellowork'
select  SUBSTRING(@str,6,4)

substring

4、len() (也可以使用datalength())      ---返回字符串的長度

declare @str varchar(100)
set @str='HelloWork'
select  datalength(@str)
select len(@str)

len

5、upper()    ---將字符串轉為大寫

declare @str varchar(100)
set @str='hellowork'
select  upper(@str)

upper

6、lower()    ---將字符串轉換成小寫 用法和UPPER()函數相反!

7、stuff( character_expression , start , length ,character_expression ) --返回從字符串character_expression左邊第start個字符開始要刪除length個字符,在start開始刪除的位置插入新字符串character_expression 。

declare @str varchar(100)
set @str='hellowork'
select  STUFF(@str,6,4,'byby')

stuff

8、 charindex ( expression1 , expression2 [ , start_location ] )--  expression1是要到expression2中尋找的字符中,start_location是charindex函數開始在expression2中找expression1的位置, charindex函數返回一個整數,返回的整數是要找的字符串在被找的字符串中的位置。假如charindex沒有找到要找的字符串,那么函數整數“0”

declare @str varchar(100)
set @str='hellowork'
select  CHARINDEX('work',@str)
select  CHARINDEX('4',@str)

charincex

9、  patindex ( %pattern% , expression )--函數返回字符或字符串在另一個字符串或表達式中的起始位置,patindex函數支持搜索字符串中使用通配符,這使patindex函數對於變化的搜索字符串很有價值

declare @str varchar(100)
set @str='hellowork'
select  patindex('%work%',@str)
select  patindex('%4%',@str)

patindex

10、isnull('內容',''):判斷字符串是否為null,是的話返回‘’

11、isdate('內容'):判斷是否為時間格式,是的話返回1,否的話返回0

SQL統計函數

AVG ( ) -返回的平均價值
count( ) -返回的行數
first( ) -返回第一個值
last( ) -返回最后一個值
max( ) -返回的最大價值
min( ) -返回最小的價值
total( ) -返回的總和

SQL日期函數

SQL Server Date 函數

下面的表格列出了 SQL Server 中最重要的內建日期函數:


       函數                 描述          
getdate()   返回當前日前與時間 
datepart(type,date)

返回日期/時間的單獨部分

dateadd(type,number,date) 在日期中添加或減去指定的時間間隔 
datediff(type,date1,date2) 返回兩個日期之間的時間
convert( data_type [ ( length ) ] , expression [ , style ]) 用不同的格式顯示日期/時間

--getdate 獲取當前時間
 select getdate()

 --dateadd 原有時間加: 2013-02-17 13:20:16 此時間加12個月
 select dateadd(MONTH,12,'2013-02-17 13:20:16')  --返回:2014-02-17 13:20:16.000  (參數month可以改為 day,year等日期加相應的值)

 --datediff 兩個時間的差 (后面-前面=返回值)
 select datediff(day,'2013-02-01','2013-02-18')   --返回:17  (參數day可以改為 month,year等日期加相應的值)

 --datepart 獲取日期的某個部分整數
 select DATEPART(month, '2013-2-17')  --返回 2    (參數month可以改為 day,year等日期加相應的值)

 --datename 獲取指定部位的字符串
 select datename(weekday, '2013-2-17')  --返回 星期日 (參數weekday可以改為 day,year等日期加相應的值)

 --day(), month(),year() 獲取指定部位的字符串
 select day('2013-2-15') --返回15


Convert日期轉換函數

時間格式轉換使用 CONVERT:CONVERT ( data_type [ ( length ) ] , expression [ , style ] )

data_type
目標系統所提供的數據類型,包括 bigint 和 sql_variant。不能使用用戶定義的數據類型。
參數
length
nchar、nvarchar、char、varchar、binary 或 varbinary 數據類型的可選參數。

expression
是任何有效的 Microsoft® SQL Server™ 表達式。

style:風格

Select CONVERT(varchar(100), GETDATE(), 0): 05 16 2006 10:57AM
Select CONVERT(varchar(100), GETDATE(), 1): 05/16/06
Select CONVERT(varchar(100), GETDATE(), 2): 06.05.16
Select CONVERT(varchar(100), GETDATE(), 3): 16/05/06
Select CONVERT(varchar(100), GETDATE(), 4): 16.05.06
Select CONVERT(varchar(100), GETDATE(), 5): 16-05-06
Select CONVERT(varchar(100), GETDATE(), 6): 16 05 06
Select CONVERT(varchar(100), GETDATE(), 7): 05 16, 06
Select CONVERT(varchar(100), GETDATE(), 8): 10:57:46
Select CONVERT(varchar(100), GETDATE(), 9): 05 16 2006 10:57:46:827AM
Select CONVERT(varchar(100), GETDATE(), 10): 05-16-06
Select CONVERT(varchar(100), GETDATE(), 11): 06/05/16
Select CONVERT(varchar(100), GETDATE(), 12): 060516
Select CONVERT(varchar(100), GETDATE(), 13): 16 05 2006 10:57:46:937
Select CONVERT(varchar(100), GETDATE(), 14): 10:57:46:967
Select CONVERT(varchar(100), GETDATE(), 20): 2006-05-16 10:57:47
Select CONVERT(varchar(100), GETDATE(), 21): 2006-05-16 10:57:47.157
Select CONVERT(varchar(100), GETDATE(), 22): 05/16/06 10:57:47 AM
Select CONVERT(varchar(100), GETDATE(), 23): 2006-05-16
Select CONVERT(varchar(100), GETDATE(), 24): 10:57:47
Select CONVERT(varchar(100), GETDATE(), 25): 2006-05-16 10:57:47.250
Select CONVERT(varchar(100), GETDATE(), 100): 05 16 2006 10:57AM
Select CONVERT(varchar(100), GETDATE(), 101): 05/16/2006
Select CONVERT(varchar(100), GETDATE(), 102): 2006.05.16
Select CONVERT(varchar(100), GETDATE(), 103): 16/05/2006
Select CONVERT(varchar(100), GETDATE(), 104): 16.05.2006
Select CONVERT(varchar(100), GETDATE(), 105): 16-05-2006
Select CONVERT(varchar(100), GETDATE(), 106): 16 05 2006
Select CONVERT(varchar(100), GETDATE(), 107): 05 16, 2006
Select CONVERT(varchar(100), GETDATE(), 108): 10:57:49
Select CONVERT(varchar(100), GETDATE(), 109): 05 16 2006 10:57:49:437AM
Select CONVERT(varchar(100), GETDATE(), 110): 05-16-2006
Select CONVERT(varchar(100), GETDATE(), 111): 2006/05/16
Select CONVERT(varchar(100), GETDATE(), 112): 20060516
Select CONVERT(varchar(100), GETDATE(), 113): 16 05 2006 10:57:49:513
Select CONVERT(varchar(100), GETDATE(), 114): 10:57:49:547
Select CONVERT(varchar(100), GETDATE(), 120): 2006-05-16 10:57:49
Select CONVERT(varchar(100), GETDATE(), 121): 2006-05-16 10:57:49.700
Select CONVERT(varchar(100), GETDATE(), 126): 2006-05-16T10:57:49.827
Select CONVERT(varchar(100), GETDATE(), 130): 18 ???? ?????? 1427 10:57:49:907AM
Select CONVERT(varchar(100), GETDATE(), 131): 18/04/1427 10:57:49:920AM

關於更多日期函數操作可以看https://www.cnblogs.com/zhangpengnike/p/6122588.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM