使用pyodbc用于python和postgreSQL数据库,我希望从脚本的运行日期收集7天前特定日期的最大数据。表中有以下可能有用的列:时间戳(yyyy-MM-dd hh:mm:ss.ffff)、年、月、日。
我试过以下几个
mon = currentDate - dt.timedelta(days=7)
monPeak = cursor.execute("SELECT MAX(total) FROM {} WHERE timestamp = {};".format(tableName, mon)).fetchval()
错误42883:operator不存在:timestamp with timezone = integer
monPeak = cursor.execute("SELECT MAX(total) FROM {} WHERE timestamp = NOW() - INTERVAL '7 DAY'".format(tableName)).fetchval()
没有错误,但值返回为'None'(我不认为这是一个可行的解决方案,因为我想要一整天的最大值,而不是那个特定的时间)
我尝试了几种不同的方法来合并db表中的年、日期和时间列,但都没有效果。目标是收集前一周每天的最大数据。什么好主意吗?
如果要进行日期比较,则必须将时间戳转换为日期。
WHERE timestamp::date = (NOW() - INTERVAL '7 DAY')::date
请注意,时间戳到日期的转换不是不可变的,它们取决于您当前的时区设置。