Dukungan sql_variant untuk Jenis Tanggal dan Waktu
Berlaku untuk:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse Analytics AnalyticsPlatform System (PDW)
Topik ini menjelaskan bagaimana jenis data sql_variant mendukung fungsionalitas tanggal dan waktu yang ditingkatkan.
Atribut kolom SQL_CA_SS_VARIANT_TYPE digunakan untuk mengembalikan tipe C dari kolom hasil varian. SQL Server 2008 (10.0.x) memperkenalkan atribut tambahan, SQL_CA_SS_VARIANT_SQL_TYPE, yang mengatur jenis SQL dari kolom hasil varian dalam deskriptor baris implementasi (IRD). SQL_CA_SS_VARIANT_SQL_TYPE juga dapat digunakan dalam pendeskripsi parameter implementasi (IPD) untuk menentukan jenis SQL parameter SQL_SS_TIME2 atau SQL_SS_TIMESTAMPOFFSET yang memiliki jenis SQL_C_BINARY C yang terikat dengan jenis SQL_SS_VARIANT.
Jenis baru SQL_SS_TIME2 dan SQL_SS_TIMESTAMPOFFSET dapat diatur oleh SQLColAttribute. SQL_CA_SS_VARIANT_SQL_TYPE dapat dikembalikan oleh SQLGetDescField.
Untuk kolom hasil, driver akan mengonversi dari varian ke jenis tanggal/waktu. Untuk informasi selengkapnya, lihat Konversi dari SQL ke C. Saat mengikat ke SQL_C_BINARY, panjang buffer harus cukup besar untuk menerima struct yang sesuai dengan jenis SQL.
Untuk parameter SQL_SS_TIME2 dan SQL_SS_TIMESTAMPOFFSET, driver akan mengonversi nilai C menjadi nilai sql_variant , seperti yang dijelaskan dalam tabel di bawah ini. Jika parameter terikat sebagai SQL_C_BINARY dan jenis server SQL_SS_VARIANT, parameter akan diperlakukan sebagai nilai biner kecuali aplikasi telah mengatur SQL_CA_SS_VARIANT_SQL_TYPE ke beberapa jenis SQL lainnya. Dalam hal ini, SQL_CA_SS_VARIANT_SQL_TYPE diutamakan; artinya, jika SQL_CA_SS_VARIANT_SQL_TYPE diatur, SQL_CA_SS_VARIANT_SQL_TYPE akan mengambil alih perilaku default untuk mengurangi jenis SQL varian dari jenis C.
Tipe C | Jenis server | Komentar |
---|---|---|
SQL_C_CHAR | varchar | SQL_CA_SS_VARIANT_SQL_TYPE diabaikan. |
SQL_C_WCHAR | nvarcar | SQL_CA_SS_VARIANT_SQL_TYPE diabaikan. |
SQL_C_TINYINT | smallint | SQL_CA_SS_VARIANT_SQL_TYPE diabaikan. |
SQL_C_STINYINT | smallint | SQL_CA_SS_VARIANT_SQL_TYPE diabaikan. |
SQL_C_SHORT | smallint | SQL_CA_SS_VARIANT_SQL_TYPE diabaikan. |
SQL_C_SSHORT | smallint | SQL_CA_SS_VARIANT_SQL_TYPE diabaikan. |
SQL_C_USHORT | int | SQL_CA_SS_VARIANT_SQL_TYPE diabaikan. |
SQL_C_LONG | int | SQL_CA_SS_VARIANT_SQL_TYPE diabaikan. |
SQL_C_SLONG | int | SQL_CA_SS_VARIANT_SQL_TYPE diabaikan. |
SQL_C_ULONG | bigint | SQL_CA_SS_VARIANT_SQL_TYPE diabaikan. |
SQL_C_SBIGINT | bigint | SQL_CA_SS_VARIANT_SQL_TYPE diabaikan. |
SQL_C_FLOAT | real | SQL_CA_SS_VARIANT_SQL_TYPE diabaikan. |
SQL_C_DOUBLE | float | SQL_CA_SS_VARIANT_SQL_TYPE diabaikan. |
SQL_C_BIT | bit | SQL_CA_SS_VARIANT_SQL_TYPE diabaikan. |
SQL_C_UTINYINT | tinyint | SQL_CA_SS_VARIANT_SQL_TYPE diabaikan. |
SQL_C_BINARY | varbinary | SQL_CA_SS_VARIANT_SQL_TYPE tidak diatur. |
SQL_C_BINARY | waktu | SQL_CA_SS_VARIANT_SQL_TYPE = SQL_SS_TIME2 Skala diatur ke SQL_DESC_PRECISION ( parameter DecimalDigits dari SQLBindParameter). |
SQL_C_BINARY | tanggalwaktulewat | SQL_CA_SS_VARIANT_SQL_TYPE = SQL_SS_TIMESTAMPOFFSET Skala diatur ke SQL_DESC_PRECISION ( parameter DecimalDigits dari SQLBindParameter). |
SQL_C_TYPE_DATE | date | SQL_CA_SS_VARIANT_SQL_TYPE diabaikan. |
SQL_C_TYPE_TIME | time(0) | SQL_CA_SS_VARIANT_SQL_TYPE diabaikan. |
SQL_C_TYPE_TIMESTAMP | tanggalwaktu2 | Skala diatur ke SQL_DESC_PRECISION ( parameter DecimalDigits dari SQLBindParameter). |
SQL_C_NUMERIC | desimal | Presisi diatur ke SQL_DESC_PRECISION (parameter ColumnSize SQLBindParameter). Skala diatur ke SQL_DESC_SCALE ( parameter DecimalDigits dari SQLBindParameter). |
SQL_C_SS_TIME2 | waktu | SQL_CA_SS_VARIANT_SQL_TYPE diabaikan |
SQL_C_SS_TIMESTAMPOFFSET | tanggalwaktulewat | SQL_CA_SS_VARIANT_SQL_TYPE diabaikan |
Lihat Juga
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk