CAST ve CONVERT (Transact-SQL)

Diğer bir ifade bir veri türüne dönüştürür SQL Server 2008 R2.

Konu bağlantısı simgesiTransact-SQL sözdizimi kuralları

Sözdizimi

Syntax for CAST:
CAST ( expression AS data_type [ ( length ) ] )

Syntax for CONVERT:
CONVERT ( data_type [ ( length ) ] , expression [ , style ] )

Bağımsız değişkenler

  • expression
    Herhangi bir geçerli ifade.

  • data_type
    hedef veri türüdür.This includes xml, bigint, and sql_variant.Diğer ad veri türü kullanılamaz.Kullanılabilir veri türleri hakkında daha fazla bilgi için bkz: Veri Türleri (Transact-SQL).

  • length
    hedef veri tipinin uzunluğunu belirten isteğe bağlı bir tamsayı olur.Varsayılan değer 30’dır.

  • style
    Nasıl çevirmek için dönüştürme işlev olduğunu belirten bir tamsayı ifade expression.Stil null ise, null değeri döndürülür.aralık belirlenir data_type.Daha fazla bilgi için açıklamalar bölümüne bakın.

Dönüş Türleri

Döndürür expression çevrilmesi için data_type.

Açıklamalar

Tarih ve saat stilleri

Zaman expression bir tarih ve saat veri türü olan style aşağıdaki tablogösterilen değerlere biri olabilir.Diğer değerleri 0 işlenir.SQL Servertarih biçimi, Kuveyt algoritması kullanarak Arapça stilini destekler.

Yüzyıl (yy) olmadan (1)

Yüzyıl (yyyy)

Standart

Giriş/çıkış (3)

-

0 or 100 (1,2)

Default

Pzt gg yyyy hh:miAM (veya pm)

1

101

ABD

AA.GG.YYYY

2

102

ANSI

yy.mm.dd

3

103

İngiliz/Fransızca

aa/gg/yyyy

4

104

Almanca

GG.aa.yy

5

105

İtalyanca

gg-aa-yy

6

106(1)

-

GG mon yy

7

107(1)

-

Pzt dd yy

8

108

-

hh:mi:ss

-

9 or 109 (1,2)

Varsayılan + milisaniye

Pzt gg yyyy hh:mi:ss:mmmAM (veya pm)

10

110

ABD

gg-aa-yy

11

111

JAPONYA

yy/aa/gg

12

112

ISO

YYAAGG

yyyyaagg

-

13 or 113 (1,2)

Avrupa varsayılan + milisaniye

GG mon yyyy hh:mi:ss:mmm(24h)

14

114

-

hh:mi:ss:mmm(24h)

-

20 or 120 (2)

odbc kurallı

yyyy-aa-gg hh:mi:ss(24h)

-

21 or 121 (2)

odbc kurallı (milisaniye ile)

yyyy-aa-gg hh:mi:ss.mmm(24h)

-

126 (4)

ISO8601

yyyy-aa-ddThh:mi:ss.mmm (boşluksuz)

-

127(6, 7)

z saat dilimi ile ISO8601.

yyyy-aa-ddThh:mi:ss.mmmZ

(boşluksuz)

-

130 (1,2)

Hijri (5)

GG mon yyyy hh:mi:ss:mmmAM

-

131 (2)

Hijri (5)

gg/aa/yy hh:mi:ss:mmmAM

1 FUNCTION sonuçlarbu stil değerleri döndürür.(Yüzyıl) olmadan tüm (yy) içeren stiller ve bir alt küme kümesini (yyyy) (yüzyıl ile) stilleri.

2 The default values (style0 or 100, 9 or 109, 13 or 113, 20 or 120, and 21 or 121) always return the century (yyyy).

3 İçin dönüştürdüğünüzde giriş datetime; karakter verileri dönüştürürken çıktı.

4 xml kullanım için tasarlanmıştır.Dönüştürme işlemi için datetime veya smalldatetime karakter veri için çıktı önceki tabloaçıklanan biçimidir.

5 Hicri, birçok çeşitlemeyi ile bir takvim sistemidir.SQL ServerKuveyt algoritması kullanır.

Önemli notÖnemli

Varsayılan olarak, SQL Server 2049 kesme bir yıla dayanan iki basamaklı yılları yorumlaması.Yani, iki basamaklı yıl 49 2049 yorumlanır ve iki basamaklı yıl 50 1950 yorumlanır.Otomasyon nesneleri üzerinde tabanlı olanlar gibi birçok istemci uygulamaları bir kesme 2030 yılı kullanır.SQL Serversağlar two digit year cutofftarafından kullanılanyapılandırma seçeneği kesme yıl değiştirir SQL Server ve tutarlı alınmasına yönelik tarihleri.Dört basamaklı yıllar belirtme önerilir.

6 Karakter veri vuran, yalnızca desteklenen datetime veya smalldatetime.Yalnızca tarih veya saat bileşenlerini temsil eden karakter verileri ne zaman atama için datetime veya smalldatetime veri türleri, belirsiz saat bileşeni küme 00:00:00.000 ve belirsiz tarih bileşeni küme 1900-01-01.

7xml eşleme daha kolay hale getirmek için kullanılan isteğe bağlı saat dilimi göstergesi, z, datetime için saat dilimi bilgilerini değerleri SQL Server datetime değerleri olan hiçbir saat dilimi.Z saat dilimi: utc-0 için göstergesidir.Diğer saat dilimlerindeki ss: dd uzaklığı ile gösterilen + veya - yön.Örneğin: 2006-12-12T23:45:12-08:00.

İçin karakter verileri dönüştürürken smalldatetime, saniye ve milisaniye içeren stilleri Göster sıfırları bu pozisyonları.Dan dönüştürdüğünüzde tarih istenmeyen bölümlerini kırpabilirsiniz datetime veya smalldatetime değerleri kullanarak uygun bir char veya varchar veri türü uzunluğu.

İçin dönüştürdüğünüzde datetimeoffset karakter verileri bir saat, bir saat dilimi içeren bir stili ile uzaklık değişkenindeki sonuç.

Kayan nokta ve gerçek stiller

Zaman expression olan float veya real, style aşağıdaki tablogösterilen değerlere biri olabilir.Diğer değerleri 0 işlenir.

Değer

Output

0 (varsayılan)

En çok 6 basamak.Bilimsel gösterimde, uygun olduğunda kullanın.

1

Her zaman 8 basamak.Her zaman bilimsel biçimde kullanın.

2

Her zaman 16 basamak.Her zaman bilimsel biçimde kullanın.

126, 128, 129

Eski nedenleri için eklenen ve sonraki bir sürümde kullanım dışı.

para ve smallmoney stiller

Zaman expression olan money veya smallmoney,style aşağıdaki tablogösterilen değerlere biri olabilir.Diğer değerleri 0 işlenir.

Değer

Output

0 (varsayılan)

Hiçbir virgül her üç basamak soluna ondalık noktası ve iki basamaklı; ondalık noktanın sağındaki Örneğin, 4235.98.

1

Virgül her üç basamak soluna ondalık noktası ve iki basamaklı; ondalık noktanın sağındaki Örneğin, 3,510.92.

2

Hiçbir virgül her üç basamak soluna ondalık noktası ve dört basamak; ondalık noktanın sağındaki Örneğin, 4235.9819.

126

Stil char(n) veya varchar(n) dönüştürürken 2 eşdeğeri

XML stiller

Zaman expression olan xml, style aşağıdaki tablogösterilen değerlere biri olabilir.Diğer değerleri 0 işlenir.

Değer

Output

0 (varsayılan)

Varsayılan ayrıştırma anlamsız beyaz boşluk atar ve bir iç dtd alt kümeiçin izin verme davranışını kullanın.

NotNot
İçin dönüştürdüğünüzde xml veri türü SQL Server anlamsız beyaz boşluk gerçekleştirilir farklı farklı xml 1. 0 '.Daha fazla bilgi için, bkz. xml örnekleri oluşturuluyor.

1

Anlamsız beyaz boşluk korumak.Bu stil ayarını varsayılan ayarlar XML: Space aynı şekilde davranır işleme gibi XML: Space "korumak" = yerine belirtilmedi.

2

Sınırlı iç dtd alt küme işleme etkinleştirin.

Etkinleştirilirse, sunucu doðrulamayan ayrıştırma işlemleri gerçekleştirmek için bir iç dtd alt küme içinde sağlanan aşağıdaki bilgileri kullanabilirsiniz.

  • Öznitelikler için varsayılan değerler uygulanır.

  • İç varlık başvuruları giderilmiş ve genişletilmiştir.

  • dtd içerik modeli sözdizimsel doğruluğu denetlenir.

Çözümleyici dış dtd alt kümelerine kýsayollar göz ardı eder.Görmek için xml bildirim da değerlendiremez mi standaloneöznitelik Evet veya hiçbir, ancak tek başına bir belge olarak, bunun yerine xml örnek ayrıştırır.

3

Anlamsız beyaz boşluk korumak ve sınırlı iç dtd alt küme işleme etkinleştirin.

İkili stilleri

Zaman expression olan binary(n), varbinary(n), char(n), veya varchar(n), style aşağıdaki tablogösterilen değerlere biri olabilir.tablo listelenmeyen stil değerleri bir hata döndürür.

Değer

Output

0 (varsayılan)

İkili veya ASCII karakter ikili bayt ASCII karakterlerine çevirir.Her karakter veya bayt 1: 1 dönüştürülür.

data_type Bir ikili türü karakter 0 x eklenir solundaki sonucu.

1, 2

data_type İkili bir tür ifade karakteri ifadeolmalıdır.expression Oluşan bir çift sayıda onaltılı basamak olmalıdır (0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ' a, b, c, d, e, f, a, b, c, d, e, f).style küme 1 0 karakterdir x ifadeilk iki karakter olması gerekir.ifade tek sayıda karakter içeriyorsa veya geçersiz karakterler bir hata ortaya çıkar.

Dönüştürülmüş ifade uzunluğunu uzunluğundan büyükse data_type sonucu sağ kesilecek.

Uzunluğu sabit data_types sonra da dönüştürülmüş sonuç sıfır eklendi sağındaki vardır daha büyüksonuç.

Data_type karakter türü ise, ifade ikili bir ifadeolmalıdır.İkili her karakterin iki onaltılık karakterlere dönüştürülür.Dönüştürülmüş ifade uzunluğunu büyüktür: data_type uzunluğu sağ fazlalıkları.

data_type Bir boyutta düzeltme karakter türü ve dönüştürülmüş sonuç uzunluğunu, uzunluğu küçüktür data_type; boşluk, çift sayıda onaltılı basamaktan korumak için sağında dönüştürülmüş ifade eklenir.

0 X eklenen dönüştürülmüş sonuç için solundaki karakter style 1.

Örtük dönüştürmeler

Örtük dönüştürmeler cast veya convert işlevbelirtmeden oluşan bu dönüşümler şunlardır.Açıkça dönüştürmeler belirtilecek cast veya convert işlev gerektiren bu Dönüşümleri ' dir.İçin izin verilen tüm açık ve örtülü veri türü dönüştürmeleri aşağıda gösterilmiştir SQL Server sistem tarafından sağlanan veri türleri.These include xml, bigint, and sql_variant.Atamada örtük dönüştürme sql_variant veri türüne örtük dönüştürme ancak sql_variant.

Veri türü dönüşüm tablosu

Arasında dönüştürürken datetimeoffset ve karakter türleri char, varchar, nchar, ve nvarchar Dönüştürülen saat dilimi mahsup bölümü çift basamak ss ve mm için uymanız gereken örnek, - 08:00.

Not

Unicode verilerini her zaman çift sayıda bayt kullandığından, dönüştürdüğünüzde dikkatli binary veya varbinary için veya Unicode desteklenen veri türleri.Örneğin, aşağıdaki dönüştürme 41 onaltılık değeri döndürmez; 4100 geri döndürür: SELECT CAST(CAST(0x41 AS nvarchar) AS varbinary).

Büyük değer veri türleri

Büyük değer veri türleri davranışlar aynı örtülü ve açık dönüştürme küçük dekiler gibi özellikle varchar, nvarchar ve varbinary veri türü.Ancak, aşağıdaki yönergeleri dikkate almanız gerekir:

  • Dönüştürme işlemi image için varbinary(max) ve tam tersi bir örtük dönüştürme ve böylece arasındaki dönüştürmelerin text ve varchar(max), ve ntext ve nvarchar(max).

  • Büyük değer veri dönüştürme türleri, gibi varchar(max), çok daha küçük bir karşılık gelen veri türü, gibi varchar, bir kapalı dönüştürme olduğunu ancak kesilme oluşur, büyük değerdir çok büyük belirtilen süre boyunca küçük veri türü.

  • Dönüştürme işlemi varchar, nvarchar, veya varbinary kendi karşılık gelen büyük değer veri türleri örtülü olarak gerçekleştirilir.

  • Dönüştürme işlemi sql_variant büyük değer veri türleri için veri türü olan açık bir dönüştürme.

  • İçin büyük değer veri türleri dönüştürülemez sql_variant veri türü.

Dönüştürme hakkında bilgi için Microsoft .NET Framework ortak dil çalışma zamanı (clr) kullanıcı tanımlı türler, bkz: Kullanıcı tanımlı türler üzerinde işlemleri gerçekleştirme.Dan dönüştürme hakkında daha fazla bilgi için xml veri türü, bkz: xml örnekleri oluşturuluyor.

XML veri türü

Ne zaman açıkça veya örtük olarak artığını xml veri türü bir dize veya ikili veri türü, içeriği, xml veri türü seri esas alan bir küme , kurallar.Bu kurallar hakkında daha fazla bilgi için bkz: xml verilerinin seri hale getirme.XML'den bir CLR kullanıcı tanımlı türüatama hakkında daha fazla bilgi için bkz: Kullanıcı tanımlı türler üzerinde işlemleri gerçekleştirme.Diğer veri türleri arasında dönüştürme hakkında bilgi için xml veri türü, bkz: xml örnekleri oluşturuluyor.

metin ve resim veri türleri

Otomatik veri türü dönüştürme desteklenmez text ve image veri türü.Açıkça dönüştürebilirsiniz text karakter verileri, veri ve image verileri binary veya varbinary, ancak en fazla uzunluk 8000 bayt.Harfleri içeren bir karakter ifade dönüştürülmeye çalışılıyor gibi yanlış bir dönüştürme çalışırsanız bir int, SQL Server işlevi bir hata iletisi.

Çıkış harmanlama

cast veya convert çıktısını bir karakter dizeve Giriş bir karakter dizeise, çıkış aynı harmanlama ve harmanlama etiket giriş olarak bulunur.Giriş bir karakter dizeise, çıkış veritabanının varsayılan harmanlama ve coercible varsayılan harmanlama etiket vardır.Daha fazla bilgi için, bkz. Harmanlama önceliği (Transact-SQL).

Çıkışı başka bir harmanlama atamak, collate yan tümce sonucu ifade cast veya convert işlevuygulanır.Örneğin:

SELECT CAST('abc' AS varchar(5)) COLLATE French_CS_AS

Kesiliyor ve sonuçları yuvarlama

Karakter veya ikili ifadeleri dönüştürürken (char, nchar, nvarchar, varchar, binary, veya varbinary) bir ifade farklı veri türü, veri, yalnızca kısmen görüntülenen kesilebilir ya da sonucu görüntü. için çok kısa olduğu için hata verirDönüştürmeleri için char, varchar, nchar, nvarchar, binary, ve varbinary aşağıdaki tablogösterilen dönüşümleri haricinde kesiliyor.

Veri türünden

Veri türü için

Sonuç

int, smallint veya tinyint

char

*

 

varchar

*

 

nchar

E

 

nvarchar

E

money, smallmoney, numeric, decimal, float, or real

char

E

 

varchar

E

 

nchar

E

 

nvarchar

E

* = Uzunluk sonucu göstermek için çok kısa.E = sonuç göstermek için çok kısa olduğundan döndürülen hata.

SQL Servertek gidiş dönüş dönüştürme, özgün veri türünden veri türü dönüştürme ve yeniden geri dönüşümleri aynı değerleri sürüm sürümvermesine olduğunu garanti eder.Böyle bir gidiş dönüş dönüştürme aşağıdaki örnekte gösterilmiştir:

DECLARE @myval decimal (5, 2)
SET @myval = 193.57
SELECT CAST(CAST(@myval AS varbinary(20)) AS decimal(10,5))
-- Or, using CONVERT
SELECT CONVERT(decimal(10,5), CONVERT(varbinary(20), @myval))

Not

Oluşturmak çalışmayın binary değerler ve ardından dönüştürme bunları bir veri türü sayısal veri türü kategori.SQL Serversonucu garantilemez bir decimal veya numeric veri türü dönüştürme binary olacak sürümleri arasında aynı SQL Server.

Görüntülemek için çok küçük bir sonuç ifade aşağıdaki örnekte gösterilmektedir.

USE AdventureWorks2008R2;
GO
SELECT p.FirstName, p.LastName, SUBSTRING(p.Title, 1, 25) AS Title, CAST(e.SickLeaveHours AS char(1)) AS 'Sick Leave'
FROM HumanResources.Employee e 
JOIN Person.Person p ON e.BusinessEntityID = p.BusinessEntityID
WHERE NOT e.BusinessEntityID >5;

Sonuç kümesi buradadır.

FirstName     LastName       Title       Sick Leave

---------     -------------  ----------  -----------

Ken           Sanchez        NULL        *

Terri         Duffy          NULL        *

Roberto       Tamburello     NULL        *

Rob           Walters        NULL        *

Gail          Erickson       Ms.         *

(5 row(s) affected)

Ondalık basamakların farklı veri türleri dönüştürdüğünüzde, bazen sonuç değerine kesilir ve diğer zamanlarda yuvarlanır.Aşağıdaki tablo davranışı gösterir.

Dan

Amacı

Davranış

numeric

numeric

Round

numeric

int

Kes

numeric

money

Round

money

int

Round

money

numeric

Round

float

int

Kes

float

numeric

Round

float

datetime

Round

datetime

int

Round

Örneğin, aşağıdaki dönüştürme sonucu olan 10:

SELECT CAST(10.6496 AS int)

hedef veri türü kaynak veri türü daha az sayıda ondalık basamak olan veri türleri dönüştürdüğünüzde, değer yuvarlanır.Örneğin, aşağıdaki dönüştürme sonucu olan $10.3497:

SELECT CAST(10.3496847 AS money)

SQL Serversayısal çalışırken hata iletisi döndüren char, nchar, varchar, veya nvarchar veri dönüştürülür int, float, numeric, veya decimal.SQL ServerAyrıca boş bir dize , bir hata verir (" ") dönüştürülür numeric veya decimal.

SQL Server 2005 ve sonraki sürümlerinde Nondeterministic belirli datetime dönüşümlerini misiniz

De SQL Server 2000, tarih ve saat dönüşümleri dize işaretlenir olarak deterministic.Ancak, bu stiller için aşağıdaki tablolistelenen doğru değil.Bu stilleri için dönüşümleri dil ayarlarına bağlıdır.SQL Server 2005ve sonraki sürümlerinde bu dönüşümleri belirleyici olarak işaretler.

Aşağıdaki tablo stilleri için listeler dize-için-datetime dönüştürme belirleyici değildir.

100 Altındaki tüm stilleri1

106

107

109

113

130

1 20 Ve 21 stilleri dışında

Örnekler

A.Her ikisi de kullanarak ARTIĞINI ve convert

Her örnek olan bu ürünler için ürün adını alır bir 3 ilk rakam, bunların fiyat listesi ve dönüştürür, kendi ListPrice için int.

-- Use CAST
USE AdventureWorks2008R2;
GO
SELECT SUBSTRING(Name, 1, 30) AS ProductName, ListPrice
FROM Production.Product
WHERE CAST(ListPrice AS int) LIKE '3%';
GO

-- Use CONVERT.
USE AdventureWorks2008R2;
GO
SELECT SUBSTRING(Name, 1, 30) AS ProductName, ListPrice
FROM Production.Product
WHERE CONVERT(int, ListPrice) LIKE '3%';
GO

B.Aritmetik işleçler ile cast kullanma

Aşağıdaki örnek tek sütun hesaplama hesaplar (Computed) tarafından toplam yıl bölme-için-tarih satış (SalesYTD) komisyon yüzdesi olarak (CommissionPCT).Bu sonuç dönüştürülür bir int veri türü sonra yuvarlak en yakın tam sayıya.

USE AdventureWorks2008R2;
GO
SELECT CAST(ROUND(SalesYTD/CommissionPCT, 0) AS int) AS 'Computed'
FROM Sales.SalesPerson 
WHERE CommissionPCT != 0;
GO

Sonuç kümesi buradadır.

Computed

------

379753754

346698349

257144242

176493899

281101272

0

301872549

212623750

298948202

250784119

239246890

101664220

124511336

97688107

(14 row(s) affected)

C.Art arda bağlamak için cast kullanma

Aşağıdaki örnek noncharacter, süreklilik ifadeler kullanarak birleştirir CAST.

USE AdventureWorks2008R2;
GO
SELECT 'The list price is ' + CAST(ListPrice AS varchar(12)) AS ListPrice
FROM Production.Product
WHERE ListPrice BETWEEN 350.00 AND 400.00;
GO

Sonuç kümesi buradadır.

ListPrice

------------------

The list price is 357.06

The list price is 364.09

The list price is 364.09

The list price is 364.09

The list price is 364.09

(5 row(s) affected)

D.Daha okunabilir metni üretmek için cast kullanma

Aşağıdaki örnek CAST dönüştürmek için seçin listesinde Name sütun için bir char(10) sütun.

USE AdventureWorks2008R2;
GO
SELECT DISTINCT CAST(p.Name AS char(10)) AS Name, s.UnitPrice
FROM Sales.SalesOrderDetail s JOIN Production.Product p on s.ProductID = p.ProductID
WHERE Name LIKE 'Long-Sleeve Logo Jersey, M';
GO

Sonuç kümesi buradadır.

Name       UnitPrice

---------- ---------------------

Long-Sleev 31.2437

Long-Sleev 32.4935

Long-Sleev 49.99

(3 row(s) affected)

E.LIKE yan tümcetümcesinin cast kullanma

Aşağıdaki örnek dönüştürür moneysütun SalesYTD için bir int ve sonra bir char(20), BT ile kullanılacak şekildesütun LIKEyan tümce.

USE AdventureWorks2008R2;
GO
SELECT p.FirstName, p.LastName, s.SalesYTD, s.BusinessEntityID
FROM Person.Person p JOIN Sales.SalesPerson s ON p.BusinessEntityID = s.BusinessEntityID
WHERE CAST(CAST(s.SalesYTD AS int) AS char(20)) LIKE '2%';
GO

Sonuç kümesi buradadır.

FirstName        LastName            SalesYTD         SalesPersonID

---------------- ------------------- ---------------- -------------

Tsvi             Reiter              2811012.7151      279

Syed             Abbas               219088.8836       288

Rachel           Valdez              2241204.0424      289

(3 row(s) affected)

F.Dönüştür'Ü kullanarak veya yazılı xml ile cast

Kullanarak yazılı xml biçimine dönüştürmek için convert kullanarak Göster birkaç örnekleri aşağıda xml veri türü.

Bu örnek, bir dize boşluk, metin ve biçimlendirme ile yazılan XML'e dönüþtürür ve tüm anlamsız beyaz boşluk (sınır boşluk düğümler arasında) kaldırır:

CONVERT(XML, '<root><child/></root>')

Bu örnek, benzer dize boşluk, metin ve biçimlendirme ile yazılan XML'e dönüþtürür ve anlamsız beyaz boşluk (sınır boşluk düğümler arasında) korur:

CONVERT(XML, '<root>          <child/>         </root>', 1)

Bu örnek dize boşluk, metin ve biçimlendirme ile yazılan xml çevirir:

CAST('<Name><FName>Carol</FName><LName>Elliot</LName></Name>'  AS XML)

Daha fazla örnek için, bkz. xml örnekleri oluşturuluyor.

G.cast kullanma ve datetime veri dönüştürme

Aşağıdaki örnek geçerli tarih ve saatgörüntüler, kullandığı CAST Geçerli tarih ve saat bir karakter veri türünü ve sonra kullanır değiştirme CONVERT tarih ve saat görüntüleme ISO 8901 biçimi.

SELECT 
   GETDATE() AS UnconvertedDateTime,
   CAST(GETDATE() AS nvarchar(30)) AS UsingCast,
   CONVERT(nvarchar(30), GETDATE(), 126) AS UsingConvertTo_ISO8601  ;
GO

Sonuç kümesi buradadır.

UnconvertedDateTime     UsingCast                      UsingConvertTo_ISO8601

----------------------- ------------------------------ ------------------------------

2006-04-18 09:58:04.570 Apr 18 2006 9:58AM            2006-04-18T09:58:04.570

(1 row(s) affected)

Aşağıdaki örnek yaklaşık önceki örnekte tersidir.Örnek kullanımlar karakter verisi olarak bir tarih ve saat görüntüler CAST karakter verileri değiştirmek için datetime veri türü ve sonra kullandığı CONVERT karakter verileri değiştirmek için datetime veri türü.

SELECT 
   '2006-04-25T15:50:59.997' AS UnconvertedText,
   CAST('2006-04-25T15:50:59.997' AS datetime) AS UsingCast,
   CONVERT(datetime, '2006-04-25T15:50:59.997', 126) AS UsingConvertFrom_ISO8601 ;
GO

Sonuç kümesi buradadır.

UnconvertedText         UsingCast               UsingConvertFrom_ISO8601

----------------------- ----------------------- ------------------------

2006-04-25T15:50:59.997 2006-04-25 15:50:59.997 2006-04-25 15:50:59.997

(1 row(s) affected)

H.Kullanarak karakter ve ikili veri dönüştürme

Aşağıdaki örnekler, farklı stilleri kullanarak karakter ve ikili veri dönüştürme sonuçlar gösterir.

--Convert the binary value 0x4E616d65 to a character value.
SELECT CONVERT(char(8), 0x4E616d65, 0) AS 'Style 0, binary to character'

Sonuç kümesi buradadır.

Style 0, binary to character

----------------------------

Name

(1 row(s) affected)

--The following example shows how Style 1 can force the result
--to be truncated. The truncation is caused by
--including the characters 0x in the result.
SELECT CONVERT(char(8), 0x4E616d65, 1) AS 'Style 1, binary to character'

Sonuç kümesi buradadır.

Style 1, binary to character

------------------------------

0x4E616D

(1 row(s) affected)

--The following example shows that Style 2 does not truncate the
--result because the characters 0x are not included in
--the result.
SELECT CONVERT(char(8), 0x4E616d65, 2) AS 'Style 2, binary to character'

Sonuç kümesi buradadır.

Style 2, binary to character

------------------------------

4E616D65

(1 row(s) affected)

--Convert the character value 'Name' to a binary value.
SELECT CONVERT(binary(8), 'Name', 0) AS 'Style 0, character to binary'

Sonuç kümesi buradadır.

Style 0, character to binary

----------------------------------

0x4E616D6500000000

(1 row(s) affected)

SELECT CONVERT(binary(4), '0x4E616D65', 1) AS 'Style 1, character to binary'

Sonuç kümesi buradadır.

Style 1, character to binary

----------------------------------

0x4E616D65

(1 row(s) affected)

SELECT CONVERT(binary(4), '4E616D65', 2) AS 'Style 2, character to binary'

Sonuç kümesi buradadır.

Style 2, character to binary

----------------------------------

0x4E616D65

(1 row(s) affected)