Aracılığıyla paylaş


Dönüştürme İşlevleri

cast kullanın ve ifadeler bir veri türüne veri türü dönüştürmeleri, başka bir veri türüne dönüştürmek için convert dönüştürme işlevleri değil otomatik olarak gerçekleştirilmesini tarafından SQL Server.Örneğin, karşılaştırmak, bir char ve bir datetime ifade veya bir smallint ve bir int , deyim veya char ifadeleri farklı uzunlukta SQL Server otomatik olarak dönüştürür.Bu bir implicit dönüþtürme olarak bilinir.cast veya convert bu örtük dönüştürmeler için kullanmak gerekli değildir.Ancak, cast kullanabilirsiniz ve aşağıdaki dönüştürme senaryolarda dönüştürün:

  • Tam olarak aynı veri türü iki deyimleridir.

  • İki ifadeler örtük olarak dönüştürülebilir.

  • Veri türleri açıkça dönüştürme gerekli değildir.

Mümkün olan dönüştürme çalışırsanız (örneğin, bir char harfleri içeren ifade int), SQL Server görüntüler bir hata iletisi.

cast ve convert işlevlerini çeşitli özel veriyi biçimlerini almak için de kullanılabilir ve seçme listesinde where yan tümce tümce tümce içinde kullanılan ve bir ifade herhangi bir izin verilmez.

İsterseniz Transact-SQL program koduna sql-92 ile uyumlu, cast yerine kullanındönüştürme. convert convert işlevsellikten yararlanmak için cast yerine kullanın.

cast veya convert kullandığınızda, aşağıdaki bilgiler gereklidir:

  • Convert ifade; Örneğin, satış raporu, parasal verileri karakter verileri dönüştürmek için satış verileri gerektirir.

  • Örneğin, belirtilen ifade, dönüştürmek için veri türü varchar ya da başka SQL Server Sistem veri türü.

Yalnızca süresince cast veya convert dönüştürme geçerlidir işlev, dönüştürülmüş değerini depolama sürece.

Veri türü için dönüştürdüğünüzde bir uzunluk belirtirseniz, SQL Server 30 uzunluğunu otomatik olarak sağlar.

Örnekler

Aşağıdaki örnekleri kullanın CAST ilk SELECT deyim ve CONVERT ikinci SELECT dönüştürmek için deyim Title sütun için bir nvarchar(20) sütun uzunluğu kısa başlıklar, yapma.

USE AdventureWorks2008R2;
GO
SELECT CAST(Title AS nvarchar(20)) AS Title, Revision
FROM Production.Document
WHERE Revision < 2 ;
GO

Or

USE AdventureWorks2008R2;
GO
SELECT CONVERT(nvarchar(20), Title) AS Title, Revision
FROM Production.Document
WHERE Revision < 2 ;
GO

Sonuç küme için (ya da sorgu) İşte.

Title                 Revision

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

Crank Arm and Tire M  0

Front Reflector Brac  1

Installing Replaceme  0

Repair and Service G  0

Training Wheels 2     1

(5 row(s) affected)

Aşağıdaki örnekte, HireDate sütunu, bir datetime , sütun için dönüştürülür bir char(11) sütun.

USE AdventureWorks2008R2 ;
GO
SELECT p.FirstName, p.LastName, CAST(e.HireDate AS char(11)) AS HireDate 
FROM HumanResources.Employee AS e 
JOIN Person.Person AS p ON e.BusinessEntityID = p.BusinessEntityID
WHERE p.FirstName = 'Kim' ;
GO

Sonuç kümesi buradadır.

FirstName       LastName                  HireDate

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

Kim             Abercrombie               2004-02-17

Kim             Akers                     2003-01-27

(2 row(s) affected)