Postgresql使用to_char将时间戳更改为YYYYMMDD,并通过Fastapi中的查询进行比较
num变量已经是Int类型。
days = (datetime.datetime.now()).strftime("%Y%m%d")
ex = session.execute("""SELECT * FROM tb WHERE num = %d AND TO_CHAR(updated_at, 'YYYYMMDD') >= %s""", (num, days))
错误讯息
TypeError:'str'和'int'的示例之间不支持'<'
如何修改days变量?
1条答案
按热度按时间z9smfwbn1#
您可以使用
to_date()
将该本地格式转换为db的常规date
类型,而不是将db值转换为本地格式:如果您的数据库时间与客户端时间匹配,您也可以在查询中使用
now()
,而根本不必检查、格式化和从客户端传递它。不过,您的消息似乎指向了其他地方,因为运算符
<
与查询中的>=
和=
不匹配,并且错误来自Python,而不是PostgreSQL。消息将有所不同,不匹配的类型将是text
,而不是str
。