Peningkatan Tanggal dan Waktu Klien Asli SQL Server

Berlaku untuk:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse Analytics AnalyticsPlatform System (PDW)

Penting

SQL Server Native Client (sering disingkat SNAC) telah dihapus dari SQL Server 2022 (16.x) dan SQL Server Management Studio 19 (SSMS). SQL Server Native Client (SQLNCLI atau SQLNCLI11) dan Penyedia Microsoft OLE DB warisan untuk SQL Server (SQLOLEDB) tidak direkomendasikan untuk pengembangan aplikasi baru. Beralih ke Microsoft OLE DB Driver (MSOLEDBSQL) baru untuk SQL Server atau Microsoft ODBC Driver terbaru untuk SQL Server ke depannya. Untuk SQLNCLI yang dikirim sebagai komponen SQL Server Database Engine (versi 2012 hingga 2019), lihat pengecualian Siklus Hidup Dukungan ini.

Topik ini menjelaskan dukungan SQL Server Native Client untuk jenis data tanggal dan waktu yang ditambahkan di SQL Server 2008 (10.0.x).

Untuk informasi selengkapnya tentang peningkatan tanggal/waktu, lihat Peningkatan Tanggal dan Waktu (OLE DB) dan Peningkatan Tanggal dan Waktu (ODBC).

Penggunaan

Bagian berikut ini menjelaskan berbagai cara menggunakan jenis tanggal dan waktu baru.

Gunakan Tanggal sebagai Tipe Data yang Berbeda

Dimulai dengan SQL Server 2008 (10.0.x), dukungan yang ditingkatkan untuk jenis tanggal/waktu membuatnya lebih efisien untuk menggunakan jenis ODBC SQL_TYPE_DATE (SQL_DATE untuk aplikasi ODBC 2.0) dan jenis OLE DB DBTYPE_DBDATE.

Gunakan Waktu sebagai Jenis Data yang Berbeda

OLE DB sudah memiliki jenis data yang hanya berisi waktu, DBTYPE_DBTIME, yang memiliki presisi 1 detik. Di ODBC, jenis yang setara adalah SQL_TYPE_TIME (SQL_TIME untuk aplikasi ODBC 2.0).

Jenis data waktu SQL Server baru memiliki detik pecahan yang akurat hingga 100 nanodetik. Ini memerlukan jenis baru di SQL Server Native Client: DBTYPE_DBTIME2 (OLE DB) dan SQL_SS_TIME2 (ODBC). Aplikasi yang ada ditulis untuk menggunakan waktu tanpa detik pecahan dapat menggunakan kolom waktu(0). Jenis DBTYPE_TIME OLE DB dan ODBC SQL_TYPE_TIME yang ada dan struktur yang sesuai harus berfungsi dengan benar, kecuali aplikasi mengandalkan jenis yang dikembalikan dalam metadata.

Gunakan Waktu sebagai Jenis Data yang Berbeda dengan Presisi Detik Pecahan yang Diperpanjang

Beberapa aplikasi, seperti kontrol proses dan aplikasi manufaktur, memerlukan kemampuan untuk menangani data waktu dengan presisi hingga 100 nanodetik. Jenis baru untuk tujuan ini adalah DBTYPE_DBTIME2 (OLE DB) dan SQL_SS_TIME2 (ODBC).

Gunakan Datetime dengan Presisi Detik Pecahan Yang Diperpanjang

OLE DB sudah mendefinisikan jenis dengan presisi hingga 1 nanodetik. Namun, jenis ini sudah digunakan oleh aplikasi SQL Server yang ada dan aplikasi tersebut hanya memiliki harapan 1/300 dari presisi kedua. Jenis datetime2(3) baru tidak kompatibel langsung dengan jenis tanggalwaktu yang ada. Jika ada risiko bahwa ini akan memengaruhi perilaku aplikasi, aplikasi harus menggunakan bendera DBCOLUMN baru untuk menentukan jenis server yang sebenarnya.

ODBC juga mendefinisikan jenis dengan presisi hingga 1 nanodetik. Namun, jenis ini sudah digunakan oleh aplikasi SQL Server yang ada dan aplikasi tersebut hanya mengharapkan presisi 3 milidetik. Jenis datetime2(3) baru tidak kompatibel langsung dengan jenis tanggalwaktu yang ada. datetime2(3) memiliki presisi satu milidetik, dan tanggalwaktu memiliki presisi 1/300 detik. Di ODBC, aplikasi dapat menentukan jenis server mana yang digunakan dengan bidang deskriptor SQL_DESC_TYPE_NAME. Oleh karena itu, jenis SQL_TYPE_TIMESTAMP yang ada (SQL_TIMESTAMP untuk aplikasi ODBC 2.0) dapat digunakan untuk kedua jenis tersebut.

Gunakan Datetime dengan Presisi Detik Pecahan yang Diperpanjang dan Zona Waktu

Beberapa aplikasi memerlukan nilai tanggalwaktu dengan informasi zona waktu. Ini didukung oleh jenis DBTYPE_DBTIMESTAMPOFFSET baru (OLE DB) dan SQL_SS_TIMESTAMPOFFSET (ODBC).

Gunakan Data Tanggal/Waktu/Tanggalwaktu/Datetimeoffset dengan Konversi Sisi Klien Konsisten dengan Konversi yang Ada

Standar ODBC menjelaskan cara kerja konversi antara jenis tanggal, waktu, dan tanda waktu yang ada. Ini diperluas secara konsisten untuk menyertakan konversi antara semua jenis tanggal dan waktu yang diperkenalkan di SQL Server 2008 (10.0.x).

Lihat Juga

Fitur Klien Asli SQL Server