在sqlalchemy中基于日期搜索数据

2024-10-03 11:13:23 发布

您现在位置:Python中文网/ 问答频道 /正文

我在数据库中有一列(scheduledStartDateTime),类型为datetime,我必须根据用户输入的datetime搜索前一行数据

我的问题是这样的:

   order = self.trips_session.query(Order).filter(
                and_(
                    Order.driverSystemId == driver_system_id,
                    func.date(Order.scheduledStartDateTime) < func.date(start_date)
                )).order_by(
                DispatchOrder.scheduledStartDateTime.desc()).first()

enter image description here

我的搜索日期是2020-01-13 07:16:06即订单号5673,因此理想情况下,我正在寻找订单号5677,但我得到的是5679。如何根据小时、分钟和秒来比较日期


Tags: 数据用户self数据库类型datetimedatesession
1条回答
网友
1楼 · 发布于 2024-10-03 11:13:23

因此,您希望转换datetime,但是func.date()datetime强制转换为date,因此缺少小时/分钟/秒。您只需正常执行比较,无需强制转换日期时间:

  order = self.trips_session.query(Order).filter(
                and_(
                    Order.driverSystemId == driver_system_id,
                    Order.scheduledStartDateTime < start_date
                )).order_by(
                DispatchOrder.scheduledStartDateTime.desc()).first() 

或者,如果提供的一个日期时间不是datetime格式,则可以使用func.datetime()强制转换它/它们,而不会丢失时间信息

相关问题 更多 >