Aracılığıyla paylaş


Dönüştürme İşlevleri

DÖNÜÞTÜRME kullanın ve veri dönüşümleri yazdığınızda, bir veri türünde deyim başka bir veri türüne dönüştürmek için CONVERT dönüştürme işlevleri otomatik olarak tarafından gerçekleştirilir. SQL Server. Örneğin, karşılaştırma, bir char ve bir datetime ifade veya smallint ve bir int ifade, veya char farklı bir uzunluklardan birisi ifadeler SQL Server bunları otomatik olarak dönüştürür. Bu bir örtülü dönüşüm bilinir.CAST veya CONVERT, bu örtülü dönüşüm için kullanarak, gerekli değildir.Ancak, CAST kullanabilirsiniz ve aşağıdaki dönüştürme senaryolarda ÇEVIR:

  • Tam olarak aynı veri türünde iki deyimleridir'ı tıklatın.

  • Örtük olarak dönüştürülebilir iki deyimleridir.

  • Açıkça veri tiplerini dönüştürme gerekli değildir.

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

CAST ve CONVERT işlevleri çeşitli özel veri biçimlerini almak için de kullanılabilir ve seçim listesinde, NEREDE kullanılabilir yan tümce, ve bir ifade herhangi bir izin verilir.

Isterseniz Transact-SQL CONVERT yerine CAST kullanmak için SQL-92'ile uyumlu program kodu. CONVERT CAST yerine CONVERT işlevi yararlanmak için kullanın.

CAST ya da ÇEVIR'i kullandığınızda, aşağıdaki bilgiler gereklidir:

  • Ifade dönüştürmek için ; örneğin, satış raporu, parasal verileri için karakter verilerinin dönüştürülmesi satış verilerinin gerektirir.

  • Belirtilen ifade, örneğin, dönüştürmek için veri türü varchar veya diğer SQL Server Sistem veri türü.

Dönüştürülmüş değeri saklamak sürece dönüştürme CAST veya CONVERT işlev süresince yalnızca geçerli değil.

Veri türünü, dönüştürdüğünüzde bir belirtmezseniz SQL Server otomatik olarak 30 uzunluğu sağlar.

Örnekler

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

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

Or

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

Sonuç kümesi (ya da bir sorgu için) olur.

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ütun, bir DateTime sütun, dönüştürülenchar(11) sütun.

USE AdventureWorks
GO
SELECT c.FirstName, c.LastName, CAST(e.HireDate AS char(11)) AS HireDate 
FROM HumanResources.Employee e 
JOIN Person.Contact c ON e.EmployeeID = c.ContactID
WHERE c.FirstName = 'Kim'
GO

Here is the result set.

FirstName       LastName                       HireDate
---------       -----------------------        -----------
Kim             Abercrombie                    Dec 12 1997
Kim             Akers                          Mar 23 1998

(2 row(s) affected)