CAST and CONVERT (Transact-SQL)
sp_delete_alert (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 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.
Note:
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.
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.
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)
See Also