我有一个 python 脚本,每天每分钟抓取一个网页并将结果保存在 postgres 数据库中。
当我浏览数据库时,我注意到数据库中缺少了一些分钟。这可能是因为我的服务器宕机或者是因为网站宕机(但造成间隙的原因与我这里的问题无关)。
我正在尝试找出对数据库中丢失的分钟进行分类的最佳方法。
现在我有一个 python 脚本,它创建了每天每一分钟的列表,并使用该列表遍历datetime
我的数据库表中的列,如下所示:
def pd(start, end, delta):
c = start
datelist = []
while c < end:
datelist.append(c)
c += delta
return datelist
有没有办法直接使用 SQL 来做到这一点?
你可以做类似的事情。首先生成会议记录(如果您经常这样做,您可能希望将它们存储在一个永久的索引表中),然后选择不在您的表中的那些。查询看起来像(没有循环!):
如果秒部分不为零,您可能必须转换存储的时间戳。而且,至少对于大量数据,您将需要一个在时间戳上定义的索引(
your_table_id
如果您使用 PostgreSQL 9.2,它可能会有很大帮助)。