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
Mary-Kate Olsenasal
2025-01-04 21:36:43589semak imbas

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'
    ...

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'
    )
)

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'
    )
)

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')
)

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!

Kenyataan:
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