Rumah > pangkalan data > tutorial mysql > Bagaimana untuk Menapis Medan Tarikh SQLAlchemy dengan Betul untuk Pertanyaan Julat Umur?

Bagaimana untuk Menapis Medan Tarikh SQLAlchemy dengan Betul untuk Pertanyaan Julat Umur?

Mary-Kate Olsen
Lepaskan: 2024-12-21 04:09:10
asal
816 orang telah melayarinya

How to Correctly Filter SQLAlchemy Date Fields for Age Range Queries?

SQLAlchemy: Menapis Medan Tarikh

Dalam SQLAlchemy, penapisan berdasarkan medan tarikh memerlukan pertimbangan yang teliti. Mari kita terokai cara menapis dengan betul antara dua tarikh untuk mengekstrak data dalam lingkungan umur yang ditentukan.

Memodelkan Medan Tarikh

Andaikan anda mempunyai model Pengguna dengan medan hari lahir ditakrifkan sebagai jenis data Tarikh, ia diwakili dalam pangkalan data sebagai rentetan dalam format 'YYYY-MM-DD', mis., '1987-01-17'.

Menapis mengikut Julat Umur

Untuk memilih semua pengguna dalam lingkungan umur tertentu, katakan 18 hingga 30 tahun, kita perlu bandingkan hari lahir mereka dengan tarikh sepadan yang mewakili permulaan dan akhir julat itu.

Salah Pendekatan

Pertanyaan awal anda, walaupun dari segi konsep betul, mengandungi kesilapan menaip yang membalikkan simbol ketaksamaan:

query = DBSession.query(User).filter(
  and_(User.birthday >= '1988-01-17', User.birthday <= '1985-01-17')
)
Salin selepas log masuk

Pertanyaan ini mengecualikan semua rekod kerana ia menyemak pengguna yang kedua-duanya mempunyai tarikh lahir lebih besar daripada atau sama dengan '1988-01-17' dan kurang daripada atau sama dengan '1985-01-17', yang mustahil.

Pendekatan Betul

Untuk menapis dengan betul, hanya terbalikkan simbol ketaksamaan:

qry = DBSession.query(User).filter(
  and_(User.birthday <= '1988-01-17', User.birthday >= '1985-01-17')
)
Salin selepas log masuk

Sebagai alternatif, anda boleh menggunakan terbina dalam antara() kaedah:

qry = DBSession.query(User).filter(User.birthday.between('1985-01-17', '1988-01-17'))
Salin selepas log masuk

Kedua-dua pendekatan akan mengembalikan pengguna yang tarikh lahirnya berada dalam julat tarikh yang ditentukan, mewakili selang umur yang diingini.

Atas ialah kandungan terperinci Bagaimana untuk Menapis Medan Tarikh SQLAlchemy dengan Betul untuk Pertanyaan Julat Umur?. 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