You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PostgreSQL中使用Pandas按日期筛选表行语法错误求助

搞定PostgreSQL日期筛选的语法问题

嘿,我一眼就瞅出你SQL语句里的两个小毛病,这就是触发SyntaxError的根源:

  1. 多写了多余的字段名:你在CAST(ts_column as date) =后面莫名其妙加了ts_column,这完全没必要,直接跟日期值就行。
  2. 日期值的引号用错了:PostgreSQL里日期/字符串常量得用单引号包起来,你用了双引号——而双引号在PG里是用来标记表名、列名这类标识符的,数据库会把"2019-06-19"当成一个列名,这不报错才怪呢!

给你几个正确的写法,随便挑一个用

写法1:CAST转换+单引号日期

SELECT * FROM "TABLE" WHERE CAST(ts_column as date) = '2019-06-19'

写法2:PG专属的日期常量语法(更清晰)

SELECT * FROM "TABLE" WHERE CAST(ts_column as date) = DATE '2019-06-19'

写法3:用::简化类型转换(PG老玩家最爱)

SELECT * FROM "TABLE" WHERE ts_column::date = '2019-06-19'

额外提个优化小技巧

如果你的ts_column是timestamp类型(带时分秒的时间戳),推荐用范围查询替代类型转换,这样能利用字段上的索引(如果有的话),避免全表扫描,效率更高:

SELECT * FROM "TABLE" 
WHERE ts_column >= '2019-06-19' AND ts_column < '2019-06-20'

这个写法会匹配2019-06-19当天00:00:00到2019-06-19 23:59:59.999...的所有数据,比类型转换更精准高效。

把上面的正确SQL替换到你的query变量里,pd.read_sql_query就能正常跑起来啦!

内容的提问来源于stack exchange,提问作者Christian

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 06:36:16