Rumah > pangkalan data > tutorial mysql > Adakah Operator `BETWEEN` SQL Server Termasuk Nilai Mula dan Tamat?

Adakah Operator `BETWEEN` SQL Server Termasuk Nilai Mula dan Tamat?

Mary-Kate Olsen
Lepaskan: 2024-12-30 19:26:10
asal
314 orang telah melayarinya

Does SQL Server's `BETWEEN` Operator Include the Start and End Values?

Adakah Operator "Antara" MS SQL Server Termasuk Sempadan Julat?

Pengendali BETWEEN dalam MS SQL Server, seperti namanya, menyemak sama ada ungkapan yang diberikan berada dalam julat yang ditentukan. Walau bagaimanapun, persoalan biasa timbul: adakah julat ini termasuk atau mengecualikan nilai sempadan?

Jawapannya ialah BETWEEN ialah pengendali inklusif, bermakna ia merangkumi kedua-dua sempadan bawah dan atas julat. Untuk menjelaskan:

SELECT foo
FROM bar
WHERE foo BETWEEN 5 AND 10
Salin selepas log masuk

Pertanyaan ini akan mendapatkan semula baris dengan foo ialah >= 5 dan <= 10, dengan berkesan termasuk nilai 5 dan 10 dalam hasilnya. Ini disahkan oleh dokumentasi Microsoft:

ANTARA mengembalikan BENAR jika nilai test_expression lebih besar daripada atau sama dengan nilai begin_expression dan kurang daripada atau sama dengan nilai end_expression.

DateTime Caveats

Untuk nilai DateTime, terdapat pertimbangan yang halus untuk diingati. Jika hanya tarikh ditetapkan, ia ditafsirkan sebagai tengah malam pada hari tersebut. Untuk mengelakkan kehilangan atau penduaan nilai masa, adalah disyorkan untuk menggunakan julat yang tidak termasuk 3 milisaat sebelum tengah malam pada tarikh tamat.

Sebagai contoh, untuk mendapatkan semua nilai DateTime dalam bulan Jun 2016:

WHERE myDateTime BETWEEN '20160601' AND DATEADD(millisecond, -3, '20160701')
Salin selepas log masuk

Ini memastikan bahawa julat memanjang hingga akhir bulan tanpa memasukkan sebarang nilai dari bulan Julai Pertama.

datetime2 and datetimeoffset

Untuk jenis data ini, adalah lebih selamat untuk menggunakan >= dan < pengendali bukannya ANTARA. Contohnya:

WHERE myDateTime >= '20160601' AND myDateTime < '20160701'

Atas ialah kandungan terperinci Adakah Operator `BETWEEN` SQL Server Termasuk Nilai Mula dan Tamat?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan