gpt4 book ai didi

没有时区的python psycopg2查询错误时间戳

转载 作者:行者123 更新时间:2023-11-29 13:13:00 24 4
gpt4 key购买 nike

从我的 python 代码我有方法:

def start_db(event, context):

conn = db()

cur = conn.cursor()



datada = event['data_start']
dataa = event['data_stop']

if not datada or not dataa:
dataa = str(datetime.datetime.now())
datada = str(dataa - datetime.timedelta(days=7))

s_query = "SELECT * FROM a_usage WHERE (bk_tenant = '%s', data_start LIKE '%s'::timestamp, data_stop LIKE '%s'::timestamp);" % (event['bk_tenant'], datada, dataa)
cur.execute(s_query)
A = cur.fetchone()

conn.commit()

cur.close()
conn.close()

return A

但是当我运行我的代码时(数据库是 postgreSQL)发生错误:

operator does not exist: timestamp without time zone ~~ timestamp without time zone

我的代码有什么问题?

提前致谢

最佳答案

目前尚不清楚您为什么尝试在时间戳上使用 LIKE 但这行不通,因为运算符需要文本参数。

您可以在时间戳上使用相等运算符:

WHERE 
bk_tenant = '%s'
AND data_start = '%s'::timestamp
AND data_stop = '%s'::timestamp

LIKE 文本:

WHERE 
bk_tenant = '%s'
AND data_start::text LIKE '%s'
AND data_stop::text LIKE '%s'

另请注意,您应该使用 bool 运算符 AND 而不是逗号。

关于没有时区的python psycopg2查询错误时间戳,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52533733/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com