【问题标题】:search data based on date in sqlalchemy在 sqlalchemy 中根据日期搜索数据
【发布时间】:2020-05-03 06:10:01
【问题描述】:

我在数据库中有一个类型为datetime 的列(scheduledStartDateTime),我必须根据用户输入的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()

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

【问题讨论】:

    标签: python python-3.x python-2.7 sqlalchemy flask-sqlalchemy


    【解决方案1】:

    所以您想转换 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() 进行转换,而不会丢失时间信息。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-09-12
      • 2012-03-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-16
      • 1970-01-01
      相关资源
      最近更新 更多