Aracılığıyla paylaş


SQL gelen dönüştürmeleri c

Aşağıdaki tablo dan dönüştürürken dikkate alınacak konulara listeler SQL Server tarih/saat türleri için c türleri.

Dönüşümleri

SQL_C_DATE

SQL_C_TIME

SQL_C_TIMESTAMP

SQL_C_BINARY

SQL_C_CHAR

SQL_C_WCHAR

SQL_CHAR

2,3,4,5

2,3,6,7,8

2,3,9,10,11

1

1

1

SQL_WCHAR

2,3,4,5

2,3,6,7,8

2,3,9,10,11

1

1

1

SQL_TYPE_DATE

Tamam

12

13

14

16

16

SQL_SS_TIME2

12

8

15

17

16

16

SQL_TYPE_TIMESTAMP

18

7,8

Tamam

19

16

16

SQL_SS_TIMESTAMPOFFSET

18,22

7,8,20

20

21

16

16

Simge anahtarı

Simge

Anlamı

Tamam

Dönüştürme sorunları yok.

1

Önce kuralları SQL Server 2008 Uygula.

2

Baştaki ve sondaki boşlukları dikkate alınmaz.

3

Dize, tarih, saat, saat dilimi veya timezoneoffset ayrıştırılır ve 9 adede kadar basamak Kesirli saniye için izin verir.Bir timezoneoffset ayrıştırılır, zaman dönüştürülür istemci saat dilimi.Bu dönüştürme sırasında bir hata ortaya çıkarsa, sqlstate 22018 ve "Tarih saat alan taşması" iletisi ile Tanılama kaydı oluşturulur.

4

Geçerli tarih, zaman damgası veya timestampoffset değeri değeri ise, sqlstate 22018 ve "Invalid character value for cast specification" iletisi ile Tanılama kaydı oluşturulur.

5

saat sıfır ise, sqlstate 01S07 ve "Kesirli kesilmesi" iletisi ile Tanılama kaydı oluşturulur.

6

Geçerli saat, saat damgası veya timestampoffset değeri değeri ise, sqlstate 22018 ve "Invalid character value for cast specification" iletisi ile Tanılama kaydı oluşturulur.

7

Tarih bileşeni yok sayılır.

8

Kesirli saniye sıfır ise, sqlstate 01S07 ve "Kesirli kesilmesi" iletisi ile Tanılama kaydı oluşturulur.

9

Geçerli tarih, saat, zaman damgası veya timestampoffset değeri değeri ise, sqlstate 22018 ve "Invalid character value for cast specification" iletisi ile Tanılama kaydı oluşturulur.

10

Değer geçerli bir saat ise, tarih bileşeni geçerli istemci tarih olarak küme.

11

Değer geçerli bir tarih ise saat sıfır olarak küme.

12

Tanılama kaydı sqlstate 07006 ve ileti "Yasak veri türü öznitelik ihlali" ile oluşturulur.

13

saat Sıfır olarak küme.

14

Arabellek bir sql_date_struct karşılayacak kadar büyük ise, sqlstate 22003 ve "Sayısal değer aralık dışında" iletisi ile Tanılama kaydı oluşturulur.

15

Tarihi istemci geçerli tarih olarak küme.

16

Arabellek dönüştürülmüş dize değeri ancak yalnızca Kesirli saniye kapsayacak kadar büyük değilse, kesilme oluşur ve tanılama kaydı sqlstate 01004 ve "sağa kesildi ileti dize verileri," ile oluşturulur.Arabellek dize değeri, tarih, saat veya mahsup bileşen kesmeden karşılayacak kadar büyük ise, sqlstate 22003 ve "Sayısal değer aralık dışında" iletisi ile Tanılama kaydı oluşturulur.Tarih ve timestampoffset, sqlstate 01004 mümkün değildir çünkü sağından dönüştürülmüş dize Kesirli saniye içermiyor.Bu nedenle, herhangi kesilmesi veri kaybına neden olur.

17

Arabellek bir SQL_SS_TIME2_STRUCT karşılayacak kadar büyük ise, sqlstate 22003 ve "Sayısal değer aralık dışında" iletisi ile Tanılama kaydı oluşturulur.

18

saat sıfır ise, sqlstate 01S07 ve "Kesirli kesilmesi" iletisi ile Tanılama kaydı oluşturulur.

19

Sunucu türü datetime veya smalldatetime ise, değeri aynı şekilde iade SQL Server 2000 ve önceki sürümleri.Bu tds Tel biçimine karşılık gelen ve bir 4 baytlık smalldatetime değeri ve datetime için 8 bayt bir değer olacaktır.

Sunucu türü datetime2 ise, bir SQL_TIMESTAMP_STRUCT değeri döndürülür.Arabellek döndürülen değeri karşılayacak kadar büyük ise, sqlstate 22003 ve "Sayısal değer aralık dışında" iletisi ile Tanılama kaydı oluşturulur.

20

Zaman dönüştürülür istemci saat dilimi.Bu dönüştürme sırasında bir hata ortaya çıkarsa, sqlstate 22008 ve "Tarih saat alan taşması" iletisi ile Tanılama kaydı oluşturulur.

21

Arabellek bir SQL_SS_TIMESTAMPOFFSET_STRUCT karşılayacak kadar büyük ise, bir SQL_SS_TIMESTAMPOFFSET_STRUCT değeri döndürülür.Aksi takdirde, sqlstate 22003 ve "Sayısal değer aralık dışında" iletisi ile Tanılama kaydı oluşturulur.

22

Değeri dönüştürülür istemci tarih ayıklanan önce saat dilimi.Bu diğer dönüşümler timestampoffset türleri ile tutarlılık sağlar.Bu dönüştürme sırasında bir hata ortaya çıkarsa, sqlstate 22008 ve "Tarih saat alan taşması" iletisi ile Tanılama kaydı oluşturulur.Bu basit kesme tarafından elde edilen değerden farklı bir tarih neden olabilir.

tablo Bu konudaki istemciye döndürülen türü ve bağlama türü arasında dönüştürme açıklar.Çıkış parametreleri, sunucu türü belirtilen, SQLBindParameter bir örtük dönüştürme sunucu üzerinde gerçek türü sunucu tarafından gerçekleştirilecek eşleşme yapar ve türü için döndürülen istemci ile belirtilen tür eşleşecektir SQLBindParameter.Server'ın dönüştürme kurallarını listelenen önceki olanlardan farklı olduğunda bu dönüştürme beklenmeyen sonuçlara yol açabilir tablo.Örneğin, ne zaman varsayılan bir tarih sağlanmalıdır, SQL Server kullandığı 1900-1-1, yerine geçerli tarih.

Ayrıca bkz.

Kavramlar