SQL中CAST和CONVERT的區別

2021-05-01 17:04:12 字數 3287 閱讀 6524

如果sql server程式設計師想將表示式從一種換為另一種,他可以從sql server 7和2000中自帶的兩種功能中做出選擇。在儲存過程或其他情況下,我們常常需要將資料從datetime型轉化成varchar型;convert和cast就可以用於這種情況。

由於sql server提供兩種功能,因此應該選擇哪種功能或應該在哪種情況下使用該功能就很容易讓人困惑了。convert是專對sql server使用的,使日期與時間值,小數之間轉換具有更寬的靈活性。

cast是兩種功能中更具ansi標準的功能,即雖然更具便攜性(比如,使用cast的函式能更容易的被其它資料庫軟體使用),但功能相對弱一些。不過,當小數轉化為數值,並保留原始表示式中的小數數值時,仍然需要使用cast。因此,我建議首先使用cast,如果遇到必須使用convert的情況時再使用convert。

convert的用法:

convert(data_type,expression[,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

sql型別轉換函式cast和convert

簡介 資料型別轉換可以通過 cast 和convert 函式來實現。大多數情況下,這兩個函式是重疊的,它們反映了 sql語言的演化歷史。這兩個函式的功能相似,不過它們的語法不同。雖然並非 所有型別的值都能轉變為其他資料型別,但總的來說,任何可以轉換的值都可以用簡單的函式實現轉換。語法 cast ex...

sql中charindex和cast結合使用

1.charindex函式常常用來在一段字元中搜尋字元或者字串。語法 charindex expression1 expression2 start location 返回的值是 返回字串中指定表示式 expression1 的起始位置。那些什麼定義啊,什麼的我就不講了,直接用列子來講,這樣大家理解...

sql中cast 函式和convert 函式

cast 函式和convert 函式 cast 函式可以將某種資料型別的表示式轉化為另一種資料型別 convert 函式也可以將制定的資料型別轉換為另一種資料型別 cast 函式和convert 函式語法 select cast 表示式 as 資料型別 select convert 資料型別 長度 ...