Udostępnij za pośrednictwem


CAST and CONVERT (Transact-SQL)

sp_delete_alert (języka Transact-SQL)

Topic link iconKonwencje składni języka Transact-SQL

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

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

Argumenty

  • expression
    Jest ważne w każdym wyrażenie.

  • data_type
    Docelowy typ danych.Zawiera słowa kluczowe xml, bigint i sql_variant.Nie można używać danych typu alias.Aby uzyskać więcej informacji o dostępnych typach danych, zobacz Data Types (Transact-SQL).

  • length
    Opcjonalna liczba całkowita określająca długość typu danych docelowych.Wartość domyślna to 30.

  • style
    To wyrażenie liczba całkowita, określająca sposób funkcja konwersji do translacji expression. Określa warunek, które muszą zostać spełnione dla wierszy, które mają zostać zwrócone.Aby uzyskać więcej informacji na temat warunków wyszukiwania i predykatów zobacz data_type. Aby uzyskać więcej informacji zobacz sekcję Spostrzeżenia.

Zwracane typy

Zwraca wartość expression dokonać translacji data_type.

Remarks

Znajdowanie wiersza przy użyciu prostego równości

Kiedy expression jest to data lub czas typ danych style może to być jedna z wartości podanych w poniższej tabela. Other values are processed as 0.SQL Server supports the date format in Arabic style by using the Kuwaiti algorithm.

Bez () wieku (RR)1)

Wiersze, które musi spełnić kilka warunków wyszukiwania

Standard

Wejście/Wyjście)3)

-

0 or 100 (1,2)

Default

W bieżącej bazie danych muszą istnieć w tabela.

1

101

USA

mm/dd/rrrr

2

102

ANSI

rr.mm.dd

3

103

Wielka Brytania/Francja

dd/mm/rrrr

4

104

Niemiecki

dd.mm.rr

5

105

Włoski

Obrazy i rysunki nie są indeksowane.

6

106(1)

-

dd msc rr

7

107(1)

-

Msc dd, rr

8

108

-

Ta akcja umożliwia kolumna dla indeksowania pełnotekstowego.

-

9 or 109 (1,2)

Domyślny + milisekundy

msc dd rrrr gg:mi:ss:mmmAM (lub PM)

10

110

USA

To język dane przechowywane kolumna.

11

111

JAPAN

"Neutralna" należy używać, gdy kolumna zawiera dane w wielu językach lub w języku nieobsługiwanym.

12

112

ISO

Wartością domyślną jest określany na podstawie opcji konfiguracja domyślnego pełnego tekstu języka.

rrrrmmdd

-

13 or 113 (1,2)

Domyślny europejski + milisekundy

dd msc rrrr gg:mi:ss:mmm(24h)

14

114

-

gg:mi:ss:mmm(24h)

-

20 or 120 (2)

ODBC canonical

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

-

21 or 121 (2)

Jeśli śledzenie zmian jest włączona i kolumny muszą być dodane lub usunięte z indeks pełnotekstowy, podczas gdy zachowywanie indeksu, w tabela powinny być dezaktywowany i wymagane kolumny powinny zostać dodane lub usunięte.

Te akcje zamrozić indeksu.

-

126 (4)

W tabela można uaktywnić później, podczas uruchamiania zapełnianie jest praktyczne.

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

-

127(6, 7)

ISO8601 ze strefą czasową Z.

rrrr-mm-ddTggmi:ss.mmmZ

(bez spacji)

-

130 (1,2)

Hidżra)5)

dd msc rrrr gg:mi:ss:mmmAM

-

131 (2)

Hidżra)5)

Wszystkie kolumny wymienionych w klauzula funkcja jednej zapytanie pełnotekstowe muszą używać tej samej wersji językowej.

1 Te wartości stylów zwracają niedeterministyczne wyniki.Zawiera wszystkie style (rr) (bez wieku) oraz podzbiór stylów (rrrr) (z wiekiem).

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 konwersji na datetime; wyjścia podczas konwertowania danych znakowych.

4 Przeznaczony do użytku XML.Do konwersji z datetime lub smalldatetime do danych znakowych format wyjściowy to zgodnie z opisem w poprzedniej tabela.

5 Hijri is a calendar system with several variations.SQL Server uses the Kuwaiti algorithm.

Important noteImportant Note:

Domyślnie program, SQL Server interpretuje rok zapisany dwoma cyframi jako wcześniejszy niż 2049.Dwucyfrowy rok 49 jest interpretowany jako 2049, zaś dwucyfrowy rok 50 jako 1950.Wiele aplikacji klienckich, jak te oparte na obiektach automatyzacji, ma ustawiony rok graniczny 2030.Program SQL Server ma opcję konfiguracyjną dwucyfrowy rok graniczny, która pozwala na zmianę roku granicznego używanego przez program SQL Server i konsekwentne traktowanie dat w całym środowisku.Zaleca się używanie czterocyfrowego zapisu roku.

6 Obsługiwane tylko wtedy, gdy rzutowanie z danych znakowych na datetime lub smalldatetime. Gdy dane znakowe, które reprezentuje tylko data lub tylko raz składników jest rzutować na datetime lub smalldatetime typy danych, składnik czas nieokreślony ustawiono 00:00:00.000 i składnik nieokreślony data jest ustawiony na 1900-01-01.

7Opcjonalny wskaźnik strefy czasowej Z jest używany w celu ułatwienia mapowania wartości XML datetime zawierających informację o strefie czasowej na wartości SQL Serverdatetime niezawierające tej informacji.Z jest wskaźnikiem strefy czasowej UTC-0.Inne strefy czasowe są oznaczane przesunięciem GG:MM ze wskazaniem kierunku + lub -.Na przykład: 2006-12-12T23:45:12-08:00.

Jeśli smalldatetime jest określony, ta funkcja zwraca informacje o uchwyty XML w określonej sesja. Części data niepożądane może zostać obcięta podczas konwersji z datetime lub smalldatetime wartości za pomocą posiadać odpowiednią char lub varchar Długość typów danych.

Podczas konwertowania datetimeoffset z danych znakowych stylem, zawierający czas przesunięcie strefy czasowej jest dołączany do wyniku.

document_id

Kiedy expression jest float lub real, style może to być jedna z wartości podanych w poniższej tabela. namespace_document_id

Wartość

Output

0 (domyślnie)

Maksymalnie 6 cyfr.Jeśli trzeba, można używać zapisu naukowego.

1

Zawsze 8 cyfr.statement_start_offset

2

Zawsze 16 cyfr.statement_start_offset

126, 128, 129

Uwzględniony dla zapewnienia zgodności, ale może być usunięty w przyszłych wersjach.

Style money i smallmoney

Kiedy expression jest money lub smallmoney,style może to być jedna z wartości podanych w poniższej tabela. namespace_document_id

Wartość

Output

0 (domyślnie)

statement_end_offset

1

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

2

Bez przecinków co trzy cyfry po lewej stronie separatora dziesiętnego i cztery cyfry po prawej stronie separatora dziesiętnego; na przykład 4235.9819.

126

original_document_size_bytes

Rozmiar w bajtach niepodzielonej dokumentu XML.

Kiedy expression jest xml, style może to być jedna z wartości podanych w poniższej tabela. namespace_document_id

Wartość

Output

0 (domyślnie)

Rozmiar dokumentu niepodzielonej obszaru nazw XML, w bajtach.

NoteNote:
Podczas konwertowania xml Typ danych SQL Server nieznaczna odstępu przebiega inaczej niż w XML 1.0. Aby uzyskać więcej informacji zobaczGenerowanie wystąpienia XML.

1

Liczba wywołań OPENXML z tego dojścia do dokumentu.To ustawienie stylu ustawia domyślne XML: Space obsługi zachowanie taki sam, jak gdyby XML: Space = "zachowanie" został określony w zamian.

2

dormant_duration_ms

Milisekund od czasu ostatniego wywołania, OPENXML.

  • Stosowane są domyślne wartości atrybutów.

  • Wewnętrzne odwołania jednostek są obliczane i rozwijane.

  • Jeśli tekst kwerendy nie jest dostępny w pamięci podręcznej, nie można pobrać dane z informacji zawartych w wyniku funkcja.

Taka sytuacja może wystąpić, jeśli korzystasz z wielu dużych partii.On również nie zwraca deklaracja XML, aby sprawdzić, czy standalone ustawiono atrybut tak or nie, ale zamiast niego analizuje wystąpienie XML tak, jakby jest autonomiczny dokument.

3

Wywołujący mogą oglądać dane zawsze swój własny identyfikator bieżącej sesja.

W poniższym przykładzie następuje wybranie wszystkich aktywnych uchwytów.

Kiedy expression jest binary(n), varbinary(n), char(n), lub varchar(n), style może to być jedna z wartości podanych w poniższej tabela. Konwertuje wyrażenie jednego typu danych do innego.

Wartość

Output

0 (domyślnie)

Wykonuje translację znaków ASCII na bajty binarne lub bajtów binarnych na znaki ASCII.Każdy znak lub bajt jest konwertowany 1:1.

Jeśli data_type jest to typ binarny znaków 0 x są dodawane na lewo od wyniku.

1, 2

Aby uzyskać więcej informacji na temat dostępnych typów danych zobacz data_type. The expression must be composed of an even number of hexadecimal digits (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F, a, b, c, d, e, f).To wyrażenie liczba całkowita, określająca sposób funkcja konwersji do translacji style. Jeśli styl ma wartość NULL, zostanie zwrócona wartość NULL.

Zakres jest określana przez data_type.

Typy danych data_types o stałej długości dłuższe niż przekonwertowany wynik są uzupełniane zerami z prawej strony.

Dla znakowego typu danych wyrażenie musi być binarne.Każdy znak binarny jest konwertowany na dwa znaki szesnastkowe.Jeśli długość przekonwertowanego wyrażenia jest większa niż długość parametru data_type, zostanie ono obcięte.

Jeśli data_type jest typem poprawka wielkości znaków i długość wynik konwertowany jest mniejsza niż jego długość data_type; spacje są dodawane po prawej stronie wyrażenie przekonwertowane do utrzymania parzystą liczbę cyfr szesnastkowych.

Znaki, 0 x zostanie dodany po lewej stronie konwertowanych wartości style 1.

Konwersje niejawne

Konwersje niejawne mają miejsce bez określania funkcji CAST lub CONVERT.Konwersje jawne wymagają określenia funkcji CAST lub CONVERT.Poniższa ilustracja pokazuje wszystkie niejawne i jawne konwersje typów danych, które są dozwolone dla dostarczanych przez system typów danych w programie SQL Server.Obejmuje to typy xml, bigint i sql_variant.Nie ma jawnej konwersji dla przypisania z typu danych sql_variant, ale istnieje niejawna konwersja na typ sql_variant.

Data type conversion table

Podczas konwersji między datetimeoffset i typy znaków char, varchar, nchar, a nvarchar przekonwertowane strefy czasowej część przesunięcia powinna być zawsze podwójne cyfr HH i MM-08 na przykład: 00.

Uwaga

Ponieważ dane w standardzie Unicode zawsze używa się parzysta liczba bajtów, ostrożność podczas konwersji binary lub varbinary obsługiwane typy danych, do lub ze standardu Unicode. dd-mm rrSELECT CAST(CAST(0x41 AS nvarchar) AS varbinary).

Pon dd, rr

Typy danych wartości duży specjalnie może zawierać takie samo zachowanie niejawne i jawne konwersji, jak ich odpowiedniki mniejsze, varchar, nvarchar i varbinary typy danych. hh:mi:ss

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

  • Typy konwersji z dużą wartość danych, takich jak varchar(max), mniejsze danych odpowiednikiem wpisz, na przykład varchar, to niejawna konwersja, ale obcinania będzie występować, jeżeli duża wartość jest za duży dla określonej długości mniejszych typu danych.

  • Konwersja z varchar, nvarchar, lub varbinary do ich odpowiednie typy danych o dużej wartości jest wykonywana domyślnie.

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

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

For information about how to convert Microsoft .NET Framework common language runtime (CLR) user-defined types, see Wykonywanie operacji na typy zdefiniowane przez użytkownika.Aby uzyskać więcej informacji na temat konwersji xml Typ danych, zobacz Generowanie wystąpienia XML.

Domyślne Europa + milisekund

Gdy użytkownik jawnie lub niejawnie rzutować xml Typ danych na ciąg znaków lub typ danych binarnych, zawartość xml Typ danych jest seryjny, na podstawie zestaw reguł. Aby uzyskać informacje dotyczące tych zasad Zobacz Serialization of XML Data. Aby uzyskać informacje na temat rzutować z pliku XML na zdefiniowany przez użytkownika typ danych CLR Zobacz Wykonywanie operacji na typy zdefiniowane przez użytkownika. Aby uzyskać informacje na temat konwersji z innymi typami danych, aby xml Typ danych, zobacz Generowanie wystąpienia XML.

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

Konwersja typu danych automatyczne nie jest obsługiwana dla text i image typy danych. Można jawnie przekonwertować text dane, które mają dane znakowe i image dane do binary lub varbinary, ale maksymalna długość wynosi 8 000 bajtów. Jeśli spróbujesz niepoprawne konwersji, takich jak próba konwersji wyrażenie znaków, które zawiera litery, aby int, SQL Server Zwraca komunikat o błędzie.

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

ISO8601 z czas strefy Z.rrrr mm-ddThh:mi:ss.mmmZAby uzyskać więcej informacji zobaczPierwszeństwo sortowanie (języka Transact-SQL).

(bez spacji)Na przykład:

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

Obcinanie i zaokrąglanie wyników

Podczas konwertowania znaku lub wyrażenie binarny)char, nchar, nvarchar, varchar, binary, lub varbinary) do wyrażenie na inny typ danych, dane mogą być obcięta, tylko częściowo wyświetlany lub zwracany jest błąd, ponieważ jest zbyt krótki, aby wyświetlić wynik. Konwertowanie na char, varchar, nchar, nvarchar, binary, a varbinary są obcinane, z wyjątkiem przypadku konwersji, pokazane w poniższej tabela.

Typ danych źródłowych

Wszystkie (RR) (bez stulecia) zawiera style oraz podzbiór (rrrr) (z wieku) stylów.

Wynik

int, smallint lub tinyint

char

*

 

varchar

*

 

nchar

E

 

nvarchar

E

money, smallmoney, numeric, decimal, float, lub real

char

E

 

varchar

E

 

nchar

E

 

nvarchar

E

* = Długość wyniku za krótka do wyświetlenia.E = Zwrócenie błędu, ponieważ długość wyniku jest za krótka do wyświetlenia.

Program SQL Server zapewnia, że tylko konwersje odwracalne, czyli takie, które konwertują jeden typ danych na drugi i odwrotnie, dają takie same wyniki niezależnie od wersji.W poniższym przykładzie pokazano taką konwersję odwracalną:

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

Uwaga

Do not try to construct binary values and then convert them to a data type of the numeric data type category.SQL Server does not guarantee that the result of a decimal or numeric data type conversion to binary will be the same between versions of SQL Server.

Oznacza to dwucyfrowy rok 49 jest interpretowana jako 2049 i dwucyfrowy rok 50 jest interpretowana jako 1950.

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

Here is the result set.

FirstName      LastName         Title                  Sick Leave
---------      ---------      -------------------   -----------
Gustavo        Achong         Mr.                   *
Catherine      Abel           Ms.                   *
Kim            Abercrombie    Ms.                   *
Humberto       Acevedo        Sr.                   *
Pilar          Ackerman       Sra.                  *

(5 row(s) affected)

Przy konwertowaniu typów danych, które różnią się liczbą miejsc dziesiętnych, w niektórych przypadkach wartość wynikowa musi być obcięta, a w innych zaokrąglona.W poniższej tabeli pokazano takie działanie.

Z

Aby

Zachowanie

numeric

numeric

Round

numeric

int

Przycinanie

numeric

money

Round

money

int

Round

money

numeric

Round

float

int

Przycinanie

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)

Jeśli przy konwertowaniu typów danych, docelowy typ danych ma mniej miejsc dziesiętnych niż źródłowy typ danych, to wartość jest zaokrąglana.Na przykład wynikiem następującej konwersji jest $10.3497:

SELECT CAST(10.3496847 AS money)

SQL Server returns an error message when nonnumeric char, nchar, varchar, or nvarchar data is converted to int, float, numeric, or decimal.SQL Server also returns an error when an empty string (" ") is converted to numeric or decimal.

Z to wskaźnik czas strefy 0 czasu UTC.

W programie SQL Server 2000 konwersje tekstu na datę i godzinę są oznaczone jako deterministyczne.Nie jest to jednak prawdą dla stylów wymienionych w poniższej tabeli.W przypadku tych stylów konwersja zależy od ustawień językowych.W wersji SQL Server 2005 i nowszych te konwersje są oznaczone jako niedeterministyczne.

W poniższej tabeli wymieniono style, dla których konwersja tekstu na datę i czas jest niedeterministyczna.

Wszystkie style poniżej 1001

106

107

109

113

130

1 Z wyjątkiem stylów 20 i 21

Przykłady

A.Inne wartości są przetwarzane jako 0.

Każdy przykład pobiera nazwę produktu dla tych produktów, które mają 3 w pierwszej cyfry cena katalogowa i konwertowania ich ListPrice Aby int.

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

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

B.Użyj w notacji naukowej, gdy jest to konieczne.

W poniższym przykładzie oblicza (obliczeń do jednej kolumnaComputed) przez podzielenie sumy sprzedaży (od początku rokuSalesYTD) przez (procent KomisjiCommissionPCT). Ten wynik konwertowany jest na int Typ danych po są zaokrąglane do najbliższej liczby całkowitej.

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

Here is the result set.

Dzięki temu konwersacji kontynuować, w przypadku, gdy jeden z bazy danych zostanie przeniesiona do innego wystąpienie w trakcie konwersacji.

------

379753754

346698349

257144242

176493899

281101272

0

301872549

212623750

298948202

250784119

239246890

101664220

124511336

97688107

(dotyczy wiersze 14)

C.Uwzględnione ze względu na starszych i może być zastąpiona w przyszłym wydaniu.

W poniższym przykładzie argument wyrażenia noncharacter, nonbinary przy użyciu CAST.

USE AdventureWorks;
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

Here is the result set.

ListPrice

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

Cena katalogowa jest 357,06

Cena katalogowa jest 364.09

Cena katalogowa jest 364.09

Cena katalogowa jest 364.09

Cena katalogowa jest 364.09

(dotyczy wiersze 5)

D.Użycie funkcji CAST generuje bardziej czytelny tekst

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

USE AdventureWorks;
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

Here is the result set.

Style XML

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

Długo Sleev 31,2437

Długo Sleev 32.4935

Długo Sleev 49,99

(dotyczy wiersze 3)

E.Użyj domyślnej podczas analizowania zachowanie, które odrzuca nieznaczących spacji i nie zezwala na wewnętrznego podzbiór DTD.

W poniższym przykładzie konwertuje money kolumna SalesYTD Aby int a następnie do char(20) kolumna, tak że mogą być używane z LIKE Klauzula.

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

Here is the result set.

Zachowaj nieznaczących odstępu.

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

Carol Elliott 2811012.7151 279

Julie Estes 219088.8836 288

Jeśli klucz jest włączony, serwer może używać następujące informacje, które są dostarczane w wewnętrznego podzbiór DTD do wykonywania operacji nonvalidating analizy.

(dotyczy wiersze 3)

F.Stosowane są ustawienia domyślne dla atrybutów.

Oto kilka przykładów, w których wyświetlane są za pomocą CONVERT konwertować pismo XML przy użyciu Typ danych XML.

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

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

Analizator składni będzie ignorować zewnętrznych podzestawy DTD.

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

Ten przykład pokazuje rzutowanie ciągu zawierającego spacje, tekst i oznakowania na XML uwzględniający typy.

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

Aby uzyskać więcej przykładów zobacz Generowanie wystąpienia XML.

G.Zachowaj nieznaczących odstępu i Włącz ograniczone wewnętrzne przetwarzanie DTD podzbiór.

Poniższy przykład wyświetla bieżącą data i czas, zastosowań CAST Aby zmienić typu danych znak, a następnie używa bieżącej data i godziny CONVERT wyświetlanie data i godziny w ISO 8901 Format.

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

Here is the result set.

UnconvertedDateTime     UsingCast                      UsingConvertTo_ISO8601

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

Styl wartości, które nie zostały wymienione w tabela zwrócony błąd.

(dotyczy wiersze 1)

Tłumaczy znaki ASCII bajtów binarnych lub binarne bajtów przeznaczonych do zestawu znaków ASCII.W przykładzie Wyświetla data i czas w postaci danych znakowych, używa CAST Aby zmienić dane znakowe, aby datetime Typ danych, a następnie zastosowania CONVERT Aby zmienić dane znakowe, aby datetime Typ 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

Here is the result set.

UnconvertedText         UsingCast               UsingConvertFrom_ISO8601

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

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

(dotyczy wiersze 1)

H.Użycie funkcji CONVERT dla danych binarnych i znakowych

W poniższych przykładach pokazano wyniki konwersji danych binarnych i znakowych z użyciem 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'

Here is the result set.

Styl 0, binarne znak

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

Imię i nazwisko

(dotyczy wiersze 1)

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

Here is the result set.

Styl 1, binarne znak

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

0x4E616D

(dotyczy wiersze 1)

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

Here is the result set.

Styl 2, binarne znak

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

4E616D65

(dotyczy wiersze 1)

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

Here is the result set.

Styl 0, znak na dwójkową

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

0x4E616D6500000000

(dotyczy wiersze 1)

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

Here is the result set.

Styl 1, znak na dwójkową

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

0x4E616D65

(dotyczy wiersze 1)

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

Here is the result set.

Styl 2, znak na dwójkową

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

0x4E616D65

(dotyczy wiersze 1)