为了账号安全,请及时绑定邮箱和手机立即绑定

NOW() 不能用于查询(它不存在)

NOW() 不能用于查询(它不存在)

Go
幕布斯6054654 2021-11-22 10:30:11
在我的 Go 代码中,我有这行代码:rows, err := conn.Query(`    SELECT id, name, lang, deleted_at, read    FROM categories    WHERE deleted_at < NOW()`)当我运行它时,我收到来自 PostgreSQL 的错误:pq: function  now() does not exist(pq 是我使用的 Go 驱动程序)使用CURRENT_TIMESTAMP也会引发错误。它说该列current_timestamp不存在。使用NOW()直接在psql(命令行)不会引发该错误,一切工作正常。关于为什么我不能使用NOW()或CURRENT_TIMESTAMP何时从我的 Go 应用程序发送查询的任何想法?
查看完整描述

2 回答

?
阿波罗的战车

TA贡献1862条经验 获得超6个赞

我键盘上的右 alt 键在我没有注意到的情况下卡住了。这让我在按下空格键时插入了不可破坏的空格。PostgreSQL 可能将不可破坏空格解释为作为函数名称一部分的字符。

而是插入常规空格解决了这个问题。


查看完整回答
反对 回复 2021-11-22
?
喵喔喔

TA贡献1735条经验 获得超5个赞

据我所知,您的查询没有任何问题。当函数实际存在但期望不同的值类型时,PostgreSQL 也可以抛出未找到的函数。

函数 now() 返回带时区的时间戳。如果列deleted_at 的类型不同,您可能需要转换deleted_at 或now() 的输出。


查看完整回答
反对 回复 2021-11-22
  • 2 回答
  • 0 关注
  • 176 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信