Udostępnij za pośrednictwem


CAST i CONVERT (Transact-SQL)

Konwertuje wyrażenie jednego typu danych do innego w SQL Server 2008 R2.

Ikona łącza do tematuJęzyka Transact-SQL składni konwencje

Składnia

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

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

Argumenty

  • expression
    Wszelkie obowiązuje wyrażenie.

  • data_type
    Jest to typ danych miejsce docelowe .This includes xml, bigint, and sql_variant.Nie można używać typów danych aliasu.Aby uzyskać więcej informacji na temat dostępnych typów danych, zobacz Typy danych (Transact-SQL).

  • length
    Jest opcjonalną liczbę całkowitą, która określa długość typ danych miejsce docelowe .Wartość domyślna to 30.

  • style
    Jest całkowitą wyrażenie , które określa sposób konwersji, funkcja tłumaczenia, expression.Jeśli styl ma wartość NULL, zostanie zwrócona wartość NULL.zakres jest określana przez data_type.Aby uzyskać więcej informacji zobacz sekcję Spostrzeżenia.

Zwracane typy

Zwraca expression dokonać translacji data_type.

Uwagi

Data i godzina style

Gdy expression jest to typ danych data lub czas , style może być jedną z wartości podane w poniższej tabela.Inne wartości są przetwarzane jako 0.SQL Serverobsługuje format data w stylu języka arabskiego, przy użyciu algorytmu kuwejcki.

Bez stulecia (RR) (1)

W wieku (rrrr)

Standard

Wejścia i wyjścia (3)

-

0 or 100 (1,2)

Default

Pon dd rrrr hh:miAM (lub PM)

1

101

USA

dd/mm/rrrr

2

102

ANSI

yy.mm.dd

3

103

Brytyjskie i francuski

mm/dd/rrrr

4

104

Niemiecki

dd.mm.yy

5

105

Włoski

dd-mm rr

6

106(1)

-

dd mon RR

7

107(1)

-

Pon dd, RR

8

108

-

hh:mi:ss

-

9 or 109 (1,2)

Domyślne + milisekund

Pon dd rrrr hh:mi:ss:mmmAM (lub PM)

10

110

USA

dd-mm rr

11

111

JAPONIA

dd/mm/rr

12

112

ISO

rrmmdd

RRRRMMDD

-

13 or 113 (1,2)

Domyślne Europy + milisekund

dd mon rrrr hh:mi:ss:mmm(24h)

14

114

-

hh:mi:ss:mmm(24h)

-

20 or 120 (2)

Kanoniczna ODBC

rrrr mm-dd hh:mi:ss(24h)

-

21 or 121 (2)

ODBC kanoniczny (w milisekundach)

rrrr mm-dd hh:mi:ss.mmm(24h)

-

126 (4)

ISO8601

rrrr mm-ddThh:mi:ss.mmm (bez spacji)

-

127(6, 7)

ISO8601 ze strefy czas Z.

rrrr mm-ddThh:mi:ss.mmmZ

(bez spacji)

-

130 (1,2)

Hijri (5)

dd mon rrrr hh:mi:ss:mmmAM

-

131 (2)

Hijri (5)

hh:mi:ss:mmmAM mm/dd/rr

1 Te wartości stylu zwracają rodzaju wyniki.Zawiera wszystkie (RR) (bez stulecia) style i podzbiór (rrrr) (z century) style.

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 Dane wejściowe podczas konwertowania datetime; dane wyjściowe podczas konwertowania danych znakowych.

4 XML przeznaczony.Do konwersji z datetime lub smalldatetime do danych znakowych format wyjściowy jest zgodnie z opisem w poprzedniej tabela.

5 Hidżry jest systemem kalendarza z kilka zmian.SQL ServerAlgorytm kuwejcki.

Ważna informacjaWażne:

Domyślnie SQL Server interpretuje dwucyfrowe lata na podstawie odcięcia roku 2049.Oznacza to, że rok dwucyfrowy 49 jest interpretowana jako 2049 i dwucyfrowy rok 50 jest interpretowana jako 1950.Wiele aplikacji klient , takie jak te oparte na obiektach automatyzacji za pomocą odcięcia roku 2030.SQL Serverzawiera two digit year cutoffużywana opcjakonfiguracja zmiany odcięcia roku przez SQL Server i umożliwia spójne traktowanie daty.Zaleca się określenie czterech cyfr.

6 Obsługiwana tylko oddał znaków danych do datetime lub smalldatetime.Gdy dane znakowe, reprezentujący tylko data lub tylko składniki czas mają być rzutowane na datetime lub smalldatetime typów danych składnik nieokreślony czas jest zestaw na 00:00:00.000 i składnik nieokreślony data jest zestaw na 1900-01-01.

7Wskaźnik strefy opcjonalne czas Z, jest używany do ułatwienia mapowanie XML datetime wartości, które mają informacji o strefie czas SQL Server datetime wartości zawierające nie stref czas .Z to wskaźnik dla strefy czas UTC 0.Innych strefach czas , są oznaczone gg: mm przesunięcie w + lub - w kierunku.Na przykład: 2006-12-12T23:45:12-08:00.

Podczas konwertowania danych znakowych z smalldatetime, style, które obejmują sekundach i milisekundach Wyświetlanie zer w tych pozycjach.Można skrócić niechciane data części podczas konwersji z datetime lub smalldatetime wartości przy użyciu odpowiednich char lub varchar Typ danych długość.

Podczas konwertowania datetimeoffset z danych znakowych styl zawiera czas, strefa czas przesunięcie jest dołączana do wyniku.

Pływak i rzeczywistym style

Gdy expression jest float lub real, style może być jedną z wartości podane w poniższej tabela.Inne wartości są przetwarzane jako 0.

Wartość

Output

0 (wartość domyślna)

Maksymalnie 6 cyfr.Użyj w notacji naukowej, w stosownych przypadkach.

1

Zawsze 8 cyfr.Zawsze używaj w notacji naukowej.

2

Zawsze 16 cyfr.Zawsze używaj w notacji naukowej.

126, 128, 129

Uwzględniony ze względu na starszych i może być zaniechane w przyszłym wydaniu.

pieniądze i smallmoney style

Gdy expression jest money lub smallmoney,style może być jedną z wartości podane w poniższej tabela.Inne wartości są przetwarzane jako 0.

Wartość

Output

0 (wartość domyślna)

Nie przecinkami co trzy cyfry po lewej stronie przecinka dziesiętnego i dwoma cyframi po prawej stronie przecinka dziesiętnego; na przykład 4235.98.

1

Przecinki co trzy cyfry po lewej stronie przecinka dziesiętnego i dwoma cyframi po prawej stronie przecinka dziesiętnego; na przykład 3,510.92.

2

Nie przecinkami co trzy cyfry po lewej stronie przecinka dziesiętnego, a cztery cyfry po prawej stronie przecinka dziesiętnego; na przykład 4235.9819.

126

Odpowiednik styl 2 podczas konwersji na char(n) lub varchar(n)

Style XML

Gdy expression jest xml, style może być jedną z wartości podane w poniższej tabela.Inne wartości są przetwarzane jako 0.

Wartość

Output

0 (wartość domyślna)

Za pomocą domyślną metodę analizy odrzuca nieznaczących światło i nie zezwala na wewnętrznym DTD podzbiór.

UwagaUwaga:
Podczas konwertowania xml typu danych, SQL Server nieznaczących owiatło przebiega inaczej niż w XML 1.0.Aby uzyskać więcej informacji, zobacz Generowanie instancji XML.

1

Zachowaj nieznaczących odstępu.To ustawienie stylu ustawia domyślne XML: Space obsługi działają tak samo, jak w przypadku XML: Space = "zachować" została określona w zamian.

2

Włącz ograniczone przetwarzanie wewnętrznego podzbiór DTD.

Jeśli klucz jest włączony, serwer może używać następujących informacji przewidziana w DTD wewnętrznego podzbiór do wykonywania operacji analizy nonvalidating.

  • Domyślne atrybuty są stosowane.

  • Odwołań do obiekt wewnętrznego są rozpoznawane i rozwinięta.

  • Model zawartości DTD będzie sprawdzana poprawność syntaktycznych.

Analizator składni będzie ignorować zewnętrznych podzestawy DTD.Również nie ocenia XML deklaracja Zobacz czy standalone atrybut jest zestaw Tak lub nie, ale zamiast niego analizuje wystąpienie XML tak, jakby był dokumentem autonomicznym.

3

Zachowaj nieznaczących światło i włączyć ograniczone przetwarzanie wewnętrznego podzbiór DTD.

Style binarne

Gdy expression jest binary(n), varbinary(n), char(n), lub varchar(n), style może być jedną z wartości podane w poniższej tabela.Styl wartości, które nie są wymienione w tabela zwracać błąd.

Wartość

Output

0 (wartość domyślna)

Tłumaczy znaki ASCII do binarnego lub binarne bajtów do znaków ASCII.Każdy znak lub bajt jest konwertowany 1: 1.

Jeśli data_type jest to typ binarny znaków 0 x dodaje się po lewej stronie wyników.

1, 2

Jeśli data_type jest typ binarny wyrażenie musi być znak wyrażenie.expression Muszą się składać z parzystej liczby szesnastkowe cyfry (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F, d, b, c, e, f).Jeśli style jest zestaw na 1 znaków 0 x musi być dwóch pierwszych znaków w wyrażenie.Błąd jest wywoływane, jeśli wyrażenie zawiera nieparzystą liczbę znaków lub znaków jest nieprawidłowych.

Jeśli długość przekonwertowanych wyrażenie jest większa niż długość data_type wynik będzie prawo obcięta.

Stała długość data_types , które są większe, a następnie przekonwertowany wynik będzie miał zer dodaje się po prawej stronie wyników.

Jeśli data_type jest typ znaków, wyrażenie musi być binarny wyrażenie.Każdy binary znak jest konwertowany na dwóch znaków szesnastkowych.Jeśli długość przekonwertowanych wyrażenie jest większa niż data_type długość zostanie prawo obcięty.

Jeśli data_type jest typ znaków poprawka o rozmiarze i długość przekonwertowanych wyników jest mniejsza niż długość jego data_type; spacje są dodawane po prawej stronie przekonwertowanych wyrażenie , aby utrzymać parzystą liczbę cyfr szesnastkowych.

Znaki 0 x zostanie dodany po lewej stronie przekonwertowany wynik dla style 1.

Konwersje niejawne

Konwersje niejawne są te konwersje występujące bez określania RZUTOWANIA lub konwersji funkcja.Konwersje jawne są te konwersje, które wymagają RZUTOWANIA lub konwersji z funkcja ma być określony.Na następującej ilustracji pokazano wszystkie konwersje typów danych bezpośrednie i pośrednie, które są dozwolone dla SQL Server typów danych dostarczonych przez system.These include xml, bigint, and sql_variant.Nie ma żadnych niejawna konwersja przydziału z sql_variant Typ danych, ale jawna konwersja na sql_variant.

Tabela konwersji typów danych

Podczas konwersji między datetimeoffset i typy znaków char, varchar, nchar, i nvarchar strefy przekonwertowanych czas przesunięcia części powinny zawsze być podwójny cyfr HH i MM dla przykładu, - 08:00.

Ostrzeżenie

Ponieważ dane Unicode zawsze używa parzysta liczba bajtów, zachować ostrożność podczas konwertowania binary lub varbinary do lub z Unicode obsługiwane typy danych.Na przykład następujące konwersji nie zwraca wartości szesnastkowej 41; Zwraca 4100: SELECT CAST(CAST(0x41 AS nvarchar) AS varbinary).

Duża wartość typów danych

Typy danych wartości duże wyraźnie wykazują takie samo zachowanie niejawne i jawne konwersji, jak ich odpowiedniki mniejszych varchar, nvarchar i varbinary typów danych.Jednakże należy wziąć pod uwagę następujące wskazówki:

  • Konwersja z image do varbinary(max) i na odwrót jest niejawna konwersja i tak są podczas konwersji między text i varchar(max), i ntext i nvarchar(max).

  • Typy konwersji z dużą wartość danych, takich jak varchar(max), do wpisz mniejszych dane uzupełniające, takie jak varchar, jest niejawna konwersja, ale obcinania wystąpi, jeśli duża wartość jest za duży dla określonej długości mniejszych typu danych.

  • Konwersja z varchar, nvarchar, lub varbinary na odpowiadające im dane dużą wartość typów odbywa się niejawnie.

  • Konwersja z sql_variant Typ danych do typów danych dużą wartość jest jawna konwersja.

  • Nie można przekonwertować typu danych wartość duża sql_variant typu danych.

Aby uzyskać informacje dotyczące konwertowania Microsoft .NET Framework language runtime (CLR) zdefiniowane przez użytkownika typowych, zobacz Wykonywanie operacji na typy zdefiniowane przez użytkownika.Aby uzyskać więcej informacji dotyczących sposobu konwertowania z xml typu danych, zobacz Generowanie instancji XML.

Typ danych XML

Gdy użytkownik jawnie lub niejawnie oddanych xml Typ danych ciąg lub typ danych binarnych, zawartość xml zaszeregować typu danych oparte na zestaw reguł.Aby uzyskać informacje dotyczące tych reguł, zobacz Szeregowanie danych XML.Aby uzyskać informacje o rzutować zdefiniowany przez użytkownika typ CLRz pliku XML, zobacz Wykonywanie operacji na typy zdefiniowane przez użytkownika.Aby uzyskać informacje o konwersji z innymi typami danych, aby xml typu danych, zobacz Generowanie instancji XML.

Typy danych tekst i obraz

Konwersja typu danych automatyczne nie jest obsługiwana dla text i image typów danych.Można jawnie przekonwertować text danych do danych znakowych i image danych do binary lub varbinary, ale maksymalna długość wynosi 8000 bajtów.Jeśli spróbuj niepoprawne konwersji, takich jak próby konwersji znaków wyrażenie , które zawiera litery do int, SQL Server zwraca komunikat o błędzie.

Sortowanie danych wyjściowych

Gdy dane wyjściowe RZUTOWANIA lub konwersji jest ciągznaków, a dane wejściowe są znaków ciąg, dane wyjściowe ma tego samego sortowanie i etykieta sortowanie jako dane wejściowe.Jeśli dane wejściowe nie jest ciągznaków, dane wyjściowe ma domyślne sortowanie bazy danych i etykietę sortowanie domyślne coercible.Aby uzyskać więcej informacji, zobacz Priorytet sortowania języka Transact-SQL).

Aby przypisać różne sortowanie danych wyjściowych, zastosowanie klauzula COLLATE wynik wyrażenie funkcjaCONVERT lub CAST.Na przykład:

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

Obcinanie i zaokrąglania wyników

Podczas konwersji znaków lub wyrażeń binarny (char, nchar, nvarchar, varchar, binary, lub varbinary) wyrażenie typu różnych danych, dane mogą być skrócone, tylko częściowo wyświetlany lub zwracany jest błąd, ponieważ wynik jest zbyt krótki, by wyświetlania.Konwersje do char, varchar, nchar, nvarchar, binary, i varbinary są obcinane, z wyjątkiem przypadku konwersji pokazane w poniższej tabela.

Z typem danych

Typ danych

Wynik

int, smallint lub tinyint

char

*

 

varchar

*

 

nchar

E

 

nvarchar

E

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

char

E

 

varchar

E

 

nchar

E

 

nvarchar

E

* = Długość wyniku zbyt krótki.E = zwrócony, ponieważ długość wynik jest zbyt krótki.

SQL Servergwarancje tylko roundtrip konwersje, konwersje, które konwersji typu danych z jego typ danych źródłowych i z powrotem, będzie dają te same wartości z wersja , do wersja.Konwersja roundtrip w poniższym przykładzie:

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

Ostrzeżenie

Nie należy do konstruowania binary wartości, a następnie przekonwertować je do danych wpisz kategorii typu danych liczbowych.SQL Servernie zagwarantować, że wynik decimal lub numeric konwersji na typ danych binary będą takie same między wersjami SQL Server.

Poniższy przykład pokazuje wynikowe wyrażenie , które jest zbyt mały.

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;

Oto zestaw wyników.

FirstName     LastName       Title       Sick Leave

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

Ken           Sanchez        NULL        *

Terri         Duffy          NULL        *

Roberto       Tamburello     NULL        *

Rob           Walters        NULL        *

Gail          Erickson       Ms.         *

(5 row(s) affected)

Podczas konwersji typów danych, które różnią się w miejscach dziesiętnych czasami wartość wyniku jest obcinany i innym razem jest zaokrąglana.W poniższej tabela przedstawiono zachowanie.

Z

Aby

Zachowanie

numeric

numeric

Round

numeric

int

Obciąć

numeric

money

Round

money

int

Round

money

numeric

Round

float

int

Obciąć

float

numeric

Round

float

datetime

Round

datetime

int

Round

Na przykład wynik następującej konwersji jest 10:

SELECT CAST(10.6496 AS int)

Podczas konwersji typów danych, których typ danych miejsce docelowe jest mniej miejsc dziesiętnych niż typ źródło danych, wartość jest zaokrąglana.Na przykład wynik następującej konwersji jest $10.3497:

SELECT CAST(10.3496847 AS money)

SQL ServerZwraca komunikat o błędzie podczas nienumeryczne char, nchar, varchar, lub nvarchar danych jest konwertowana na int, float, numeric, lub decimal.SQL Serverrównież zwraca błąd, gdy pusty ciąg (" ") jest konwertowany na numeric lub decimal.

Nondeterministic w SQL Server 2005 i nowszej wersji są pewne konwersje typu Data/Godzina

W SQL Server 2000, ciąg do konwersji data i czas są oznaczone jako deterministyczny.Jednak nie jest to prawdą w przypadku stylów wymienione w poniższej tabela.Dla tych stylów konwersje są zależne od ustawień języka.SQL Server 2005i jego nowsze wersje Oznacz te konwersje jako rodzaju.

W poniższej tabela wymieniono style dla którego ciąg-do-konwersja typu Data/Godzina jest rodzaju.

Wszystkie style poniżej 1001

106

107

109

113

130

1 z wyjątkiem style 20 i 21

Przykłady

A.Obie ODDANYCH i konwertowanie

Każdy przykład pobiera nazwę produktu dla tych produktów, które mają 3 w pierwszej cyfry ich cena rynkowa i konwertuje ich ListPrice do 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.RZUTOWANIE przy użyciu operatorów arytmetycznych

W poniższym przykładzie oblicza obliczenie pojedynczej kolumna (Computed) poprzez podzielenie całkowitej roku-do-data sprzedaży (SalesYTD) przez wartość procentową Komisji (CommissionPCT).Ten wynik konwertowany jest na int Typ danych po zaokrąglić do najbliższej liczby całkowitej.

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

Oto zestaw wyników.

Computed

------

379753754

346698349

257144242

176493899

281101272

0

301872549

212623750

298948202

250784119

239246890

101664220

124511336

97688107

(14 row(s) affected)

C.Aby złączyć za pomocą RZUTOWANIA

Poniższy przykład łączy używając wyrażeń noncharacter, Niebinarnych 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

Oto zestaw wyników.

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.Za pomocą ODDANYCH do uzyskania bardziej czytelny tekst

W poniższym przykładzie użyto CAST na liście Wybierz, aby przekonwertować Name kolumna , aby char(10) kolumna.

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

Oto zestaw wyników.

Name       UnitPrice

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

Long-Sleev 31.2437

Long-Sleev 32.4935

Long-Sleev 49.99

(3 row(s) affected)

E.Przy użyciu klauzulaLIKE RZUTOWANIA

Poniższy przykład konwertuje money kolumna SalesYTD do int i następnie do char(20) kolumna , tak że może być używany z LIKE klauzula.

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

Oto zestaw wyników.

FirstName        LastName            SalesYTD         SalesPersonID

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

Tsvi             Reiter              2811012.7151      279

Syed             Abbas               219088.8836       288

Rachel           Valdez              2241204.0424      289

(3 row(s) affected)

F.Korzystając z przycisku KONWERTUJ lub CAST maszynowy XML

Oto kilka przykładów przedstawiających przy użyciu PRZEKONWERTOWAĆ konwertują pismo XML za pomocą Typ danych xml.

W tym przykładzie konwertuje ciąg odstępu, tekst i znaczniki na pismo XML i usuwa wszystkie nieistotne białe miejsca (granica białe miejsca miedzy węzłami):

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

W tym przykładzie konwertuje podobne ciąg odstępu, tekst i znaczniki na pismo XML, zachowuje nieznaczących białe miejsca (granica białe miejsca miedzy węzłami):

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

Posługując się miarką w tym przykładzie kątową ciąg odstępu, tekst i znaczników do wpisywanych XML:

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

Aby zapoznać się z większą liczbą przykładów, zobacz Generowanie instancji XML.

G.Korzystanie z WYTOPU i KONWERTOWAĆ z danymi typu datetime

Poniższy przykład wyświetla bieżącą data i czas, korzysta z CAST do zmiany bieżącej data i czas na typ danych do znaków i następnie zastosowań CONVERT wyświetlania data i czas w ISO 8901 format.

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

Oto zestaw wyników.

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)

Poniższy przykład stanowi przeciwieństwo około poprzedniego przykładu.Przykład wyświetla data i czas jako znak danych używa CAST do zmiany danych znakowych na datetime Typ danych, a następnie używa CONVERT do zmiany danych znakowych na datetime typu danych.

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

Oto zestaw wyników.

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.Korzystając z przycisku KONWERTUJ dane binarne i znaków

Następujące przykłady przedstawiają wyniki konwersji danych binarnych oraz znaków przy użyciu różnych stylów.

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

Oto zestaw wyników.

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'

Oto zestaw wyników.

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'

Oto zestaw wyników.

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'

Oto zestaw wyników.

Style 0, character to binary

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

0x4E616D6500000000

(1 row(s) affected)

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

Oto zestaw wyników.

Style 1, character to binary

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

0x4E616D65

(1 row(s) affected)

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

Oto zestaw wyników.

Style 2, character to binary

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

0x4E616D65

(1 row(s) affected)