dqfsbvd43312 2018-11-21 22:30 采纳率: 0%
浏览 2409

如何将时间戳插入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: date/time field value out of range: "21-11-2018 22:19:59"

据我所知,这意味着格式不正确。

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

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

附带注意:在我将列类型从字符(20)更改为时间戳之前,这段代码还是工作正常的,我甚至尝试将强制转换包含在SQL中,但我得到了相同的错误。

  • 写回答

2条回答 默认 最新

  • dtg78700 2018-11-22 03:12
    关注

    I can see that datetime variable is string type. I don't know why you must convert time.Time to string before exec query.
    If define date column in readings table is TIMESTAMP, you can exec query like this
    Db.Exec(SqlStatement, currentTime, temp, humi)

    评论

报告相同问题?

悬赏问题

  • ¥50 永磁型步进电机PID算法
  • ¥15 sqlite 附加(attach database)加密数据库时,返回26是什么原因呢?
  • ¥88 找成都本地经验丰富懂小程序开发的技术大咖
  • ¥15 如何处理复杂数据表格的除法运算
  • ¥15 如何用stc8h1k08的片子做485数据透传的功能?(关键词-串口)
  • ¥15 有兄弟姐妹会用word插图功能制作类似citespace的图片吗?
  • ¥200 uniapp长期运行卡死问题解决
  • ¥15 latex怎么处理论文引理引用参考文献
  • ¥15 请教:如何用postman调用本地虚拟机区块链接上的合约?
  • ¥15 为什么使用javacv转封装rtsp为rtmp时出现如下问题:[h264 @ 000000004faf7500]no frame?