Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 如何从表中的上一次加载中选择大于文件中存储的最大时间戳的记录_Sql_Python 3.x_Pandas_Dataframe_Datetime - Fatal编程技术网

Sql 如何从表中的上一次加载中选择大于文件中存储的最大时间戳的记录

Sql 如何从表中的上一次加载中选择大于文件中存储的最大时间戳的记录,sql,python-3.x,pandas,dataframe,datetime,Sql,Python 3.x,Pandas,Dataframe,Datetime,我有一个SQL脚本,从中提取数据存储到数据帧中 当前代码 cursor.execute(""" SELECT * FROM ofs.ord_add oa WHERE oa.is_active = 'Y' AND oa.or_ad_id = 5820 AND oa.flag_value = 'Y' """) data3=cursor.fetchall() columns = [column[0] for co

我有一个SQL脚本,从中提取数据存储到数据帧中

当前代码

cursor.execute("""
    SELECT * FROM ofs.ord_add oa
            WHERE
            oa.is_active = 'Y' AND   oa.or_ad_id = 5820  AND   oa.flag_value = 'Y'
    """)
    data3=cursor.fetchall()
    columns = [column[0] for column in cursor.description]
    order_addition = pd.DataFrame(data3,columns=columns)
**电流输出-Run1**

ID     IS_ACTIVE   OR_AD_ID   FLAG_VALUE   INSERT TIMESTAMP
12300     Y          5820        Y         2020-01-06 08:12:53
14340     Y          5820        Y         2020-01-19 06:11:53
**电流输出-Run2**

ID     IS_ACTIVE   OR_AD_ID   FLAG_VALUE   INSERT TIMESTAMP
12300     Y          5820        Y         2020-01-06 08:12:53
14340     Y          5820        Y         2020-01-19 06:11:53
22368     Y          5820        Y         2020-01-22 08:12:53
34567     Y          5820        Y         2020-01-24 06:11:53
我希望在当前代码中使用一个条件,以便:

1) 上次运行的最大插入时间戳存储在文件中

2) 在SQL查询的下一次运行中,只有大于文件中存储的最大时间戳的记录被删除 加载到数据帧中

运行2后的预期输出

  ID     IS_ACTIVE   OR_AD_ID   FLAG_VALUE   INSERT TIMESTAMP
  22368     Y          5820        Y         2020-01-22 08:12:53
  34567     Y          5820        Y         2020-01-24 06:11:53

如何在python中实现这一点?

首先,从第一次运行开始创建一个变量:

unique_ids = tuple(dataframe.IDs.unique.tolist())
然后下次执行sql查询

cursor.execute("""
     SELECT * FROM ofs.ord_add oa
              WHERE
             oa.is_active = 'Y' AND   oa.or_ad_id = 5820  AND   oa.flag_value = 'Y'
             AND oa.ID NOT IN %(unique_ids)s; 
"""
({'unique_ids':unique_ids})
)

测试可变位置保持。。。我可能在这段代码中搞错了。但整个想法是,在再次运行查询之前,获取变量,然后将其传递给查询。有一个关于如何传入变量的指南。我很想得到你的反馈,不管它是否有效

真是个好问题。我的代码中也有类似的问题。您介意显示data3=cursor.fetchall()的输出吗?@sammywemmy,我已经提出了,它与上面发布的输出相同如何将max_last_运行存储在触发查询的数据库表中。然后您可以选择所有记录>该记录value@GeorgeJoseph,我需要在linux服务器中处理该问题,因此我需要存储上一次运行文件中的最大时间戳