在我的SQL客户端中,我在运行时得到记录:
SELECT * FROM foo WHERE foo.date = '2019-01-01';
((foo.date
是date
类型时。]
在asyncpg中,我尝试通过两种方式重现此内容:
from datetime import date
where_date = date(2019, 1, 1)
sql = f"SELECT * FROM foo WHERE foo.date = '{where_date}';"
records = await asyncpg.fetch(sql)
和
sql = "SELECT * FROM foo WHERE foo.date = $1;"
records = await conn.fetch(sql, where_date)
但是这些结果均未返回任何记录。
我在做什么错,在asyncpg中过滤date
或datetime
上的查询的正确方法是什么?
如果列foo.date的数据类型为datetime,则应将其转换为date。请参见下面的示例:
SELECT * FROM foo WHERE CONVERT(DATE, foo.date) = CONVERT(DATE, '2019-01-01');