Presisi Jenis Data Interval

Presisi untuk jenis data interval mencakup presisi interval terdepan, presisi interval, dan presisi detik.

Bidang utama interval adalah numerik yang ditandatangani. Jumlah maksimum digit untuk bidang terdepan ditentukan oleh kuantitas yang disebut presisi terdepan interval, yang merupakan bagian dari deklarasi jenis data. Misalnya, deklarasi: INTERVAL HOUR(5) TO MINUTE memiliki presisi terdepan interval 5; bidang HOUR dapat mengambil nilai dari -99999 hingga 99999. Presisi terdepan interval terkandung dalam bidang SQL_DESC_DATETIME_INTERVAL_PRECISION rekaman deskriptor.

Daftar bidang yang terdiri dari tipe data interval disebut presisi interval. Ini bukan nilai numerik, karena istilah "presisi" mungkin menyiratkan. Misalnya, presisi interval jenis INTERVAL HARI KE DETIK adalah daftar HARI, JAM, MENIT, DETIK. Tidak ada bidang deskriptor yang menyimpan nilai ini; presisi interval selalu dapat ditentukan oleh jenis data interval.

Jenis data interval apa pun yang memiliki bidang SECOND memiliki presisi detik. Ini adalah jumlah digit desimal yang diizinkan di bagian pecahan dari nilai detik. Ini berbeda dari untuk jenis data lainnya, di mana presisi menunjukkan jumlah digit sebelum titik desimal. Presisi detik dari jenis data interval adalah jumlah digit setelah titik desimal. Misalnya, jika presisi detik diatur ke 6, angka 123456 di bidang pecahan akan ditafsirkan sebagai .123456 dan angka 1230 akan ditafsirkan sebagai .001230. Untuk jenis data lainnya, ini disebut sebagai skala. Presisi interval detik terkandung dalam bidang SQL_DESC_PRECISION deskriptor. Jika presisi komponen detik pecahan dari nilai interval SQL lebih besar dari apa yang dapat ditahan dalam struktur interval C, itu ditentukan driver apakah nilai detik pecahan dalam interval SQL dibulatkan atau dipotong saat dikonversi ke struktur interval C.

Saat bidang SQL_DESC_CONCISE_TYPE diatur ke jenis data interval, bidang SQL_DESC_TYPE diatur ke SQL_INTERVAL dan SQL_DESC_DATETIME_INTERVAL_CODE diatur ke kode untuk jenis data interval. Bidang SQL_DESC_DATETIME_INTERVAL_PRECISION secara otomatis diatur ke presisi terdepan interval default 2, dan bidang SQL_DESC_PRECISION secara otomatis diatur ke presisi detik interval default 6. Jika salah satu nilai ini tidak sesuai, aplikasi harus secara eksplisit mengatur bidang deskriptor melalui panggilan ke SQLSetDescField.