Rumah pembangunan bahagian belakang Tutorial Python Pertanyaan Julat Masa Django: Mengapa parameter __Range tidak mengandungi tarikh akhir?

Pertanyaan Julat Masa Django: Mengapa parameter __Range tidak mengandungi tarikh akhir?

Apr 01, 2025 pm 04:06 PM
kenapa

Django Time Range Query: Mengapa parameter __Range tidak mengandungi tarikh akhir?

Soalan biasa dalam pertanyaan pelbagai masa Django: Mengapa parameter __range kadang -kadang mengecualikan tarikh akhir? Artikel ini akan menjalankan analisis mendalam dan menyediakan penyelesaian.

Apabila menggunakan Django untuk pertanyaan pangkalan data, penapisan data berdasarkan julat masa adalah operasi biasa. Walau bagaimanapun, banyak pemaju menghadapi situasi di mana hasil pertanyaan secara tidak disangka tidak termasuk tarikh akhir yang ditentukan ( end_date ) apabila menggunakan parameter __range . Ini bukan bug Django, tetapi ciri yang ditakrifkan oleh julat masa dalam pertanyaan pangkalan data.

Penerangan Masalah

Pemaju menggunakan kod berikut untuk pertanyaan:

 hasil = AmazonHistoryPrice.Objects.Filter (pengenalan = pengenalan, created_at__range = [start_date, end_date]). order_by ('created_at'). semua ()
Salin selepas log masuk

Struktur jadual pangkalan data adalah seperti berikut:

 Buat jadual "Amazon_App_AmazonHistoryPrice" ("ID" Integer tidak NULL Autoincrement utama utama, "bulan" integer tidak null, "hari" integer tidak null, teks identifikasi "tidak null," integer "tidak null," tahun "integer tidak null," created_at "null);
Salin selepas log masuk

Hasil yang diharapkan adalah untuk mendapatkan data antara start_date dan end_date , tetapi hasil sebenar mengabaikan data yang sepadan dengan end_date .

Menyebabkan analisis

Parameter __range Django mengikuti prinsip "kiri dan kanan", iaitu, ia termasuk tarikh permulaan dan tarikh akhir. Oleh itu, untuk memasukkan end_date , tiada pengubahsuaian kod diperlukan. Masalahnya terletak pada sisihan dalam memahami prinsip "kiri dan kanan".

Penyelesaian

Jika matlamat anda adalah untuk memasukkan start_date dan end_date , maka __range telah memenuhi keperluan dan tiada pengubahsuaian diperlukan. Jika medan created_at dalam pangkalan data anda adalah ketepatan yang cukup tinggi dan jangkaan anda adalah untuk memasukkan start_date tetapi tidak termasuk end_date , maka __range telah memenuhi keperluan anda.

Jika jangkaan anda adalah untuk memasukkan semua data sebelum start_date dan end_date , maka tidak perlu mengubah suai end_date . __range sendiri mengandungi tarikh akhir.

Kawalan yang lebih tepat

Untuk kawalan yang lebih tepat mengenai julat masa, adalah disyorkan untuk menggunakan __gte (lebih besar daripada atau sama dengan) dan __lt (kurang daripada) pengendali:

 hasil = amazonHistoryPrice.Objects.Filter (pengenalan = pengenalan, created_at__gte = start_date, created_at__lt = end_date) .order_by ('created_at'). Semua ()
Salin selepas log masuk

Kaedah ini melaksanakan pertanyaan selang "tertutup kiri dan terbuka betul", yang secara eksplisit termasuk start_date , tetapi tidak termasuk end_date . Ini memberikan logik pertanyaan yang lebih jelas dan mengelakkan potensi kesilapan pelarasan buatan kepada end_date .

Kaedah yang mana untuk dipilih bergantung pada keperluan khusus dan definisi jangka masa. Memahami ciri -ciri julat masa dalam pertanyaan pangkalan data, serta pelbagai pengendali yang disediakan oleh Django Orm, adalah penting untuk menulis pertanyaan pangkalan data yang cekap dan tepat.

Atas ialah kandungan terperinci Pertanyaan Julat Masa Django: Mengapa parameter __Range tidak mengandungi tarikh akhir?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

<🎜>: Bubble Gum Simulator Infinity - Cara Mendapatkan dan Menggunakan Kekunci Diraja
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Nordhold: Sistem Fusion, dijelaskan
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Mandragora: Whispers of the Witch Tree - Cara Membuka Kunci Cangkuk Bergelut
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Tutorial Java
1664
14
Tutorial PHP
1269
29
Tutorial C#
1249
24
Cara memaparkan kategori kanak -kanak di halaman arkib kategori induk Cara memaparkan kategori kanak -kanak di halaman arkib kategori induk Apr 19, 2025 pm 11:54 PM

Adakah anda ingin tahu cara memaparkan kategori kanak -kanak di halaman arkib kategori induk? Apabila anda menyesuaikan halaman arkib klasifikasi, anda mungkin perlu melakukan ini untuk menjadikannya lebih berguna kepada pelawat anda. Dalam artikel ini, kami akan menunjukkan kepada anda bagaimana untuk memaparkan kategori kanak -kanak dengan mudah di halaman arkib kategori induk. Mengapa subkategori muncul di halaman arkib kategori induk? Dengan memaparkan semua kategori kanak -kanak di halaman arkib kategori induk, anda boleh menjadikannya kurang generik dan lebih berguna kepada pelawat. Sebagai contoh, jika anda menjalankan blog WordPress mengenai buku dan mempunyai taksonomi yang disebut "tema", anda boleh menambah sub-taksonomi seperti "novel", "bukan fiksyen" supaya pembaca anda dapat

Mengapa kenaikan atau kejatuhan harga mata wang maya? Mengapa kenaikan atau kejatuhan harga mata wang maya? Mengapa kenaikan atau kejatuhan harga mata wang maya? Mengapa kenaikan atau kejatuhan harga mata wang maya? Apr 21, 2025 am 08:57 AM

Faktor kenaikan harga mata wang maya termasuk: 1. Peningkatan permintaan pasaran, 2. Menurunkan bekalan, 3. Berita positif yang dirangsang, 4. Sentimen pasaran optimis, 5. Persekitaran makroekonomi; Faktor penurunan termasuk: 1. Mengurangkan permintaan pasaran, 2. Peningkatan bekalan, 3.

Kenapa projek musim bunga menyebabkan masalah rawak akibat kebergantungan bulat apabila bermula? Kenapa projek musim bunga menyebabkan masalah rawak akibat kebergantungan bulat apabila bermula? Apr 19, 2025 pm 11:21 PM

Memahami rawak kebergantungan bulat dalam permulaan projek musim bunga. Semasa membangunkan projek musim bunga, anda mungkin menghadapi rawak yang disebabkan oleh kebergantungan bulat pada permulaan projek ...

Kenapa nilai pulangan kosong apabila menggunakan redistemplate untuk pertanyaan batch? Kenapa nilai pulangan kosong apabila menggunakan redistemplate untuk pertanyaan batch? Apr 19, 2025 pm 10:15 PM

Kenapa nilai pulangan kosong apabila menggunakan redistemplate untuk pertanyaan batch? Apabila menggunakan Redistemplate untuk operasi pertanyaan batch, anda mungkin menghadapi hasil yang dikembalikan ...

Kenapa kaedah redistemplate.opsForlist (). LeftPop () Kaedah tidak menyokong lulus parameter untuk muncul pelbagai nilai sekaligus? Kenapa kaedah redistemplate.opsForlist (). LeftPop () Kaedah tidak menyokong lulus parameter untuk muncul pelbagai nilai sekaligus? Apr 19, 2025 pm 10:27 PM

Mengenai sebab mengapa redistemplate.OpsForList (). LeftPop () tidak menyokong nombor lulus. Apabila menggunakan Redis, banyak pemaju akan menghadapi masalah: mengapa redistempl ...

Apakah perbezaan antara kerangka php laravel dan yii Apakah perbezaan antara kerangka php laravel dan yii Apr 30, 2025 pm 02:24 PM

Perbezaan utama antara Laravel dan Yii adalah konsep reka bentuk, ciri -ciri fungsional dan senario penggunaan. 1. Laravel memberi tumpuan kepada kesederhanaan dan keseronokan pembangunan, dan menyediakan fungsi yang kaya seperti alat eloquentorm dan artisan, sesuai untuk pembangunan dan pemula yang pesat. 2.YII menekankan prestasi dan kecekapan, sesuai untuk aplikasi beban tinggi, dan menyediakan sistem Activerecord dan cache yang cekap, tetapi mempunyai lengkung pembelajaran yang curam.

Kenapa JavaScript secara langsung tidak dapat mendapatkan maklumat perkakasan secara langsung di komputer pengguna? Kenapa JavaScript secara langsung tidak dapat mendapatkan maklumat perkakasan secara langsung di komputer pengguna? Apr 19, 2025 pm 08:15 PM

Perbincangan mengenai sebab -sebab mengapa JavaScript tidak dapat memperoleh maklumat perkakasan komputer pengguna dalam pengaturcaraan harian, banyak pemaju akan ingin tahu tentang mengapa JavaScript tidak dapat diperoleh secara langsung ...

See all articles