如何使用两个日期之间的特殊差异从表中选择行?

t9eec4r0  于 2021-09-08  发布在  Java
关注(0)|答案(1)|浏览(416)

我在数据库中有一个表“user”,它包含以下列:id、url、name、update_at(datetime)、updated_ext(datetime)、created_at(datetime)。
我需要选择所有行,并带有特定条件:
如果列中更新的日期与今天之间的差异超过1天(变量名称在开始时)
如果在更新时和更新后的列之间的差异小于48小时(变量名称以两天为单位)
on_start=(datetime.now()-timedelta(days=1)),
in_two_days=(datetime.now()-timedelta(days=2))

q = session.query(user).filter(
        user.object_type == object_type,
        or_(
            user.updated_at <= on_start,
            ((user.updated_at - user.updated_external) < in_two_days)
        )
    )

当我试着运行它时,我得到了
提示:没有与给定名称和参数类型匹配的运算符。您可能需要添加显式类型转换。
因为我试图找出两个日期之间的差异(updated_at和updated_ext,以及类似“updated_at_1”的格式内部):(datetime.datetime(2021,7,8,11,5,3,620971),“param_1”:datetime.datetime(2021,7,7,11,5,3,620978))。
有没有其他方法来比较两个日期?
谢谢

x8diyxa7

x8diyxa71#

有点困惑,但我想我知道你的意思。这将返回一个索引数组,其中该条件为true

df = your_database
indx_array = where(np.logical_and(user.updated_at <= on_start, (user.updated_at - user.updated_external) < in_two_days))

编辑:还可以使用np.where()返回条件为true和false的某些值。看见https://numpy.org/doc/1.20/reference/generated/numpy.where.html

相关问题