Veri türü dönüştürme (veritabanı altyapısı)

Aşağıdaki senaryolarda veri türlerine dönüştürülebilir:

  • Bir nesneden veri için karşılaştırıldığında, ya da başka bir nesne verileri ile birlikte taşındığında verileri bir nesne veri türünden diğer veri türüne dönüştürülmesi gerekebilir.

  • Zaman verileri bir Transact-SQLsonuç sütunu, dönüş kodu veya çıktı parametresi bir program değişken taşınır, gelen veri dönüştürülmesi gerekir SQL Serversistem veri türü değişken veri türü için.

Bir uygulama değişkeni arasında dönüştürürken ve bir SQL Serversonuç kümesi sütunu, kod, parametre veya parametre işaretçisi, veritabanı API tarafından desteklenen veri türü dönüştürmeleri tanımlanır.

Açık ve örtülü dönüştürme

Veri türleri, örtük veya açık olarak dönüştürülebilir.

Örtülü Dönüştürmelere kullanıcıya görünür değildir. SQL Serverotomatik olarak verileri bir veri türünden diğerine dönüştürür. Örneğin, ne zaman bir smallintkarşılaştırılır bir int, smallintörtülü olarak dönüştürülür intönce karşılaştırma gelirleri.

Açık dönüştürmeleri cast veya convert işlevleri kullanabilirsiniz.

cast ve convert işlevleri (yerel bir değişken, bir sütun ya da başka bir deyim) bir veri türünden diğerine dönüştürmek. Örneğin, aşağıdaki CASTişlevi sayısal değerini dönüştürür $157.27bir karakter dizesini '157.27':

CAST ( $157.27 AS VARCHAR(10) )

CAST ( $157.27 AS VARCHAR(10) )

İsterseniz DÖNÜŞTÜRMEK yerine kullanın döküm Transact-SQLprogram kodu ile ISO uymayı. convert Dönüştür stil işlevsellikten yararlanmak için oyuncular yerine kullanın.

İçin izin verilen tüm açık ve örtülü veri türü dönüştürmeleri aşağıda gösterilmiştir SQL Serversistem tarafından sağlanan veri türleri. Bunlar xml, bigint ve sql_variant türleridir. Ataması üzerine örtülü dönüştürülmesi sql_variantveri türüne örtük dönüştürme ama sql_variant.

Veri türü dönüşüm tablosu

Veri türü dönüştürme davranışları

Bir veri türünü dönüştürürken bazı açık ve örtülü veri türü dönüştürmeleri desteklenmez SQL Serverbaşka bir nesneye. Örneğin, bir nchardeğeri dönüştürülür edilemez bir imagedeğer. Bir ncharsadece dönüştürülebilir binaryaçık dönüştürme, bir örtük dönüştürme kullanarak binarydesteklenmiyor. Ancak, bir ncharaçıkça veya örtük olarak dönüştürülebilir nvarchar.

Aşağıdaki konular, onların karşılık gelen veri türleri tarafından sergilenen dönüştürme davranışları açıklamaktadır:

ikili ve varbinary (Transact-sql)

datetime2 (Transact-sql)

para ve küçük para (Transact-SQL)

bit (Transact-sql)

datetimeoffset (Transact-sql)

küçük tarih saat (Transact-SQL)

karakter ve değişken karakter (Transact-SQL)

ondalık ve sayısal (Transact-sql)

sql_variant (Transact-sql)

tarihi (Transact-sql)

kayan nokta ve gerçek (Transact-sql)

Saat (Transact-sql)

DateTime (Transact-sql)

tamsayı, büyük tamsayı, küçük tamsayı ve mini tamsayı (Transact-SQL)

benzersiz tanımlayıcı (Transact-SQL)

Saklı yordamları ole Otomasyon kullanarak veri türleri dönüştürme

Çünkü SQL Serverkullanan Transact-SQLveri türleri ve ole Otomasyon kullanan Visual Basicveri türleri, saklı yordamları aralarında geçen verileri dönüştürmek gerekir Otomasyonu.

Aşağıdaki tabloda açıklanmıştır SQL Serveriçin Visual Basicveri türü dönüştürmeleri.

SQL Server veri türü

Visual Basic veri türü

char, varchar, text, nvarchar, ntext

String

decimal, numeric

String

bit

Boolean

binary, varbinary, image

Tek boyutlu Byte()dizi

int

Long

smallint

Integer

tinyint

Byte

float

Double

real

Single

money, smallmoney

Currency

datetime, smalldatetime

Date

Bir şey null olarak ayarlamak

VariantNULL olarak ayarlamak

Tüm tek SQL Serverdeğerleri tek bir dönüştürülür Visual Basicdeğeri dışında binary, varbinary, ve imagedeğerler. Bu değerler bir tek boyutlu dönüştürülür Byte()dizi Visual Basic. Bu diziye sahip Byte(0 length1 ) nereye lengthbayt sayısı SQL Server   binary, varbinary, ya imagedeğerler.

Bu dönüşümler vardır Visual Basicveri türleri SQL Serververi türlerini.

Visual Basic veri türü

SQL Server veri türü

Long, Integer, Byte, Boolean, Object

int

Double, Single

float

Currency

money

Date

datetime

String4000 karakter veya daha az

varchar/nvarchar

String4000'den fazla karakter ile

text/ntext

Tek boyutlu Byte()dizi 8000 bayt veya daha az

varbinary

Tek boyutlu Byte()8000 bayttan fazla dizi

image

Ayrıca bkz.

Başvuru

ole Otomasyon depolanan yordamlar (Transact-sql)

CAST ve CONVERT (Transact-SQL)

Veri Türleri (Transact-SQL)

HARMANLAMA (Transact-sql)