Adakah Nilai Sempadan Digunakan pada Operator "antara" MS SQL Server?
Pengendali "antara" dalam MS SQL Server adalah inklusif, kerana ditakrifkan dalam Buku Dalam Talian. Ini bermakna nilai yang lebih besar daripada atau sama dengan sempadan bawah ("begin_expression") dan kurang daripada atau sama dengan sempadan atas ("end_expression") akan disertakan dalam set hasil.
Sebagai contoh, perkara berikut pertanyaan akan memilih semua baris di mana lajur "foo" mengandungi nilai antara 5 dan 10, inklusif:
SELECT foo FROM bar WHERE foo BETWEEN 5 AND 10
Pertimbangan DateTime
Apabila bekerja dengan nilai DateTime, adalah penting untuk ambil perhatian bahawa hanya bahagian tarikh dipertimbangkan dalam perbandingan "antara". Untuk memastikan hasil yang tepat, anda mesti menentukan komponen masa iaitu 3 milisaat sebelum tengah malam untuk tarikh tamat. Ini menghalang sebarang kehilangan data atau pertindihan untuk nilai yang termasuk dalam julat tarikh tamat.
Sebagai contoh, untuk mendapatkan semula semua baris yang lajur "myDateTime" mengandungi nilai dalam bulan Jun 2016, anda akan menggunakan pertanyaan berikut:
WHERE myDateTime BETWEEN '20160601' AND DATEADD(millisecond, -3, '20160701')
Datetime2 dan Datetimeoffset Operasi
Daripada menolak 3 milisaat, adalah disyorkan untuk menggunakan pendekatan yang lebih mudah dan tepat berikut apabila bekerja dengan jenis data datetime2 atau datetimeoffset:
WHERE myDateTime >= '20160601' AND myDateTime < '20160701'
Atas ialah kandungan terperinci Adakah Operator `ANTARA` MS SQL Server Termasuk Nilai Sempadan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!