2016-08-11 41 views
0

因此,我对Post gres相当陌生,并且试图将时间字段的值设置为当前时间。在后gres中设置时间字段为当前时间

UPDATE table_name 
SET updated_at = now(), 
WHERE id = :id 

我正在执行这与golang和上述语法错误。

如何将当前时间输入到updated_at时间字段?

+0

删除'where'(或now()'之后的逗号)。 –

+0

总是,**总是**显示确切的错误文本。 “语法错误”不是神秘代码。它通常会告诉你错误在哪里和错在哪里。在这种情况下,它会输出:'ERROR:语法错误在或接近“WHERE”'LINE 3:WHERE id = 1;'。所以你知道在错误之前/之后环视四周。 –

回答

0

由于有人指出您有额外的,导致此问题。 您可以正确地形成字符串(在下面的示例中为query)并将其传递给db API。

package main 

import (
    "fmt" 
    "time" 
) 

func main() { 
    name := "table_name" 
    id := "table_id" 
    query := fmt.Sprintf("UPDATE %s SET update_at = %q WHERE id = %s", name, time.Now(), id) 
} 
0

至于你提到

You want to set the value of a time field as current time

你可以试试这个,Now()提供当前日期时间。铸塑Time后,我们可以得到currenttime

UPDATE table_name 
SET updated_at = now()::TIME 
WHERE id = _id 

或者你可以尝试

UPDATE table_name 
    SET updated_at = current_time --gives you current time with time zone 
    WHERE id = _id 

请参阅 https://www.postgresql.org/docs/9.1/static/functions-datetime.html了解更多详情。

希望它适合你。

相关问题