Rumah > pangkalan data > tutorial mysql > Bagaimana untuk Menapis Medan Tarikh SQLAlchemy dengan Cekap mengikut Julat?

Bagaimana untuk Menapis Medan Tarikh SQLAlchemy dengan Cekap mengikut Julat?

Mary-Kate Olsen
Lepaskan: 2025-01-04 21:36:43
asal
620 orang telah melayarinya

How to Efficiently Filter SQLAlchemy Date Fields by Range?

Penapisan Medan Tarikh SQLchemy

Menapis medan tarikh dalam SQLAlchemy membolehkan pemilihan rekod yang tepat dalam julat tarikh yang ditentukan. Pertimbangkan model berikut:

class User(Base):
    ...
    birthday = Column(Date, index=True)   #in database it's like '1987-01-17'
    ...
Salin selepas log masuk

Menapis Julat Tarikh

Untuk menapis pengguna dalam lingkungan umur tertentu, anda boleh memanfaatkan mekanisme penapisan SQLAlchemy:

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

Walau bagaimanapun, pendekatan ini mengandungi kesilapan menaip. Untuk memilih pengguna yang berumur antara 18 dan 30 tahun, anda harus menukar operator yang lebih besar daripada atau sama dengan (>=) dan kurang daripada atau sama dengan (<=):

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

Menggunakan Antara

Pendekatan alternatif ialah menggunakan kaedah antara, yang membenarkan spesifikasi langsung tarikh julat:

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

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