|
表達(dá)式:是常量、變量、列或函數(shù)等與運(yùn)算符的任意組合。以下參數(shù)中表達(dá)式類型是指表達(dá)式經(jīng)運(yùn)算后返回的值的類型
數(shù)據(jù)類型轉(zhuǎn)換函數(shù)
(以下兩種函數(shù)功能類似,但是convert在進(jìn)行日期轉(zhuǎn)換時(shí)還提供了豐富的樣式,cast只能進(jìn)行普通的日期轉(zhuǎn)換)
|
函數(shù)名稱 |
參數(shù) |
示例 |
描述 |
|
convert |
(數(shù)據(jù)類型[(長(zhǎng)度)],表達(dá)式[,樣式]) |
select convert(nvarchar,123) 返回123
select N'年齡:'+convert(nvarchar,23)
返回 年齡:23(注意:如果想要在結(jié)果中正確顯示中文需要在給定的字符串前面加上N,加N是為了使數(shù)據(jù)庫(kù)識(shí)別 Unicode字符)
select convert(nvarchar ,getdate())
返回04 28 2009 10:21PM
select convert(nvarchar ,getdate(),101)
返回04/28/2009
select convert(nvarchar ,getdate(),120)
返回2009-04-28 12:22:21
select convert(nvarchar(10) ,getdate(),120)
返回2009-04-28 |
將一種數(shù)據(jù)類型的表達(dá)式顯式轉(zhuǎn)換為另一種數(shù)據(jù)類型的表達(dá)式。
長(zhǎng)度:如果數(shù)據(jù)類型允許設(shè)置長(zhǎng)度,可以設(shè)置長(zhǎng)度,例如
varchar(10)
樣式:用于將日期類型數(shù)據(jù)轉(zhuǎn)換為字符數(shù)據(jù)類型的日期格式的樣式。見下表 |
|
cast |
(表達(dá)式 as 數(shù)據(jù)類型[(長(zhǎng)度)]) |
select cast(123 as nvarchar)返回123
select N'年齡:'+cast(23 as nvarchar)
返回 年齡:23 |
將一種數(shù)據(jù)類型的表達(dá)式顯式轉(zhuǎn)換為另一種數(shù)據(jù)類型的表達(dá)式。 |
日期類型數(shù)據(jù)轉(zhuǎn)換為字符數(shù)據(jù)類型的日期格式的部分樣式表
|
不帶世紀(jì)數(shù)位 (yy) |
帶世紀(jì)數(shù)位 (yyyy) |
標(biāo)準(zhǔn) |
輸入/輸出 |
|
- |
0 或 100 |
默認(rèn)設(shè)置 |
mon dd yyyy hh:miAM(或 PM) |
|
1 |
101 |
美國(guó) |
mm/dd/yyyy |
|
2 |
102 |
ANSI |
yy.mm.dd |
|
3 |
103 |
英國(guó)/法國(guó) |
dd/mm/yy |
|
4 |
104 |
德國(guó) |
dd.mm.yy |
|
5 |
105 |
意大利 |
dd-mm-yy |
|
|
120 |
ODBC 規(guī)范 |
yyyy-mm-dd hh:mi:ss(24h) |
當(dāng)兩個(gè)不同數(shù)據(jù)類型的表達(dá)式用運(yùn)算符組合后,數(shù)據(jù)類型優(yōu)先級(jí)規(guī)則指定將優(yōu)先級(jí)較低的數(shù)據(jù)類型優(yōu)先轉(zhuǎn)換為優(yōu)先級(jí)較高的數(shù)據(jù)類型。 如果此轉(zhuǎn)換不是所支持的隱式轉(zhuǎn)換,則返回錯(cuò)誤。 當(dāng)兩個(gè)操作數(shù)表達(dá)式具有相同的數(shù)據(jù)類型時(shí),運(yùn)算的結(jié)果便為該數(shù)據(jù)類型。如果需要把優(yōu)先級(jí)高的數(shù)據(jù)類型轉(zhuǎn)換為優(yōu)先級(jí)低的數(shù)據(jù)類型時(shí)需要使用數(shù)據(jù)類型轉(zhuǎn)換函數(shù)進(jìn)行顯示轉(zhuǎn)換。
SQL Server 2005 對(duì)數(shù)據(jù)類型使用以下優(yōu)先級(jí)順序(先高后低):
1、用戶定義數(shù)據(jù)類型(最高)2、sql_variant 3、xml 4、datetime 5、smalldatetime 6、float 7、real 8、decimal 9、money 10、smallmoney 11、bigint 12、int 13、smallint 14、tinyint 15、bit 16、ntext 17、text 18、image 19、timestamp 20、uniqueidentifier
21、nvarchar(包括 nvarchar(max))22、nchar 23、varchar (包括 varchar(max))24、char 25、varbinary(包括 varbinary(max))26、binary(最低)
|