NOW()不能在查询中使用(它不存在)

时间:2015-11-01 20:40:11

标签: sql postgresql go

在我的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不会引发错误,一切正常。

在我的Go应用程序发送查询时,我不知道为什么我不能使用NOW()CURRENT_TIMESTAMP

2 个答案:

答案 0 :(得分:1)

我键盘上的右键alt卡在没有注意的情况下卡住了。这使我在按空格键时插入不可破坏的空格。 PostgreSQL可能将不可破坏空间解释为属性函数的一部分。

插入常规空格代替了解决问题。

答案 1 :(得分:0)

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

函数now()返回timestamp with time zone。如果列deleted_at的类型不同,则可能需要转换deleted_at或now()的输出。