猿问

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

在我的 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 应用程序发送查询的任何想法?


幕布斯6054654
浏览 177回答 2
2回答

阿波罗的战车

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

喵喔喔

据我所知,您的查询没有任何问题。当函数实际存在但期望不同的值类型时,PostgreSQL 也可以抛出未找到的函数。函数 now() 返回带时区的时间戳。如果列deleted_at 的类型不同,您可能需要转换deleted_at 或now() 的输出。
随时随地看视频慕课网APP

相关分类

Go
我要回答