登录
首页 >  Golang >  Go问答

向PostgreSQL数据库插入时间戳

来源:stackoverflow

时间:2024-03-12 12:48:27 227浏览 收藏

Golang不知道大家是否熟悉?今天我将给大家介绍《向PostgreSQL数据库插入时间戳》,这篇文章主要会讲到等等知识点,如果你在看完本篇文章后,有更好的建议或者发现哪里有问题,希望大家都能积极评论指出,谢谢!希望我们能一起加油进步!

问题内容

我在使用 go 将时间戳插入到我的 psql 数据库时遇到问题。

我用这一行形成我的时间戳:

datetime := currenttime.format("02-01-2006 15:04:05")

我的sql查询是:

sqlstatement := `
            insert into readings (date, temp, humi)
            values ($1, $2, $3)`

然后我对 psql db 的调用是:

_, err = db.exec(sqlstatement, datetime, temp, humi)

(如您所见,我这里还有一些其他变量,但它们不会造成任何问题。)

当我执行代码时,出现此错误:

pq:日期/时间字段值超出范围:“21-11-2018 22:19:59”

据我了解,这意味着格式不正确。

然而,当我直接向 psql 控制台输入完全相同的查询时,它成功地将记录(行)添加到表中。

INSERT INTO readings (date, temp, humi)  VALUES ('02-01-2006 15:04:05', 20, 30);

旁注:在我将列类型从字符(20)更改为时间戳之前,此代码工作正常,我什至尝试将 cast 合并到 sql 中,但遇到了相同的错误。


解决方案


我可以看到 datetime 变量是 string 类型。我不知道为什么在执行查询之前必须将 time.Time 转换为 string
如果在 readings 表中定义 date 列是 TIMESTAMP,则可以像这样执行查询
Db.Exec(SqlStatement, currentTime, temp, humi)

以上就是本文的全部内容了,是否有顺利帮助你解决问题?若是能给你带来学习上的帮助,请大家多多支持golang学习网!更多关于Golang的相关知识,也可关注golang学习网公众号。

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>