登录
首页 >  Golang >  Go问答

如何使用 sqlx 插入给定的时间戳

来源:stackoverflow

时间:2024-04-01 22:27:30 106浏览 收藏

偷偷努力,悄无声息地变强,然后惊艳所有人!哈哈,小伙伴们又来学习啦~今天我将给大家介绍《如何使用 sqlx 插入给定的时间戳》,这篇文章主要会讲到等等知识点,不知道大家对其都有多少了解,下面我们就一起来看一吧!当然,非常希望大家能多多评论,给出合理的建议,我们一起学习,一起进步!

问题内容

此问题特定于 github.com/jmoiron/sqlx。 我想使用命名查询插入已知的时间戳或日期。我怎么做?我使用 time.now() 作为给定时间戳的示例。

这是我在 mysql 中的表:

create table book (
   id int(11) not null,
   name varchar(50) default null,
   ts timestamp null default null,
   primary key (id)
) engine=innodb
package main

import (
    _ "database/sql"
    _ "github.com/go-sql-driver/mysql"
    "github.com/jmoiron/sqlx"
    "log"
    "time"
    "fmt"
)

type book struct {
    id int
    name string
    ts time.time
}

func main() {
    db, err := sqlx.open("mysql", "xxx:xxxxx@tcp(127.0.0.1:3306)/dbname?parsetime=true&charset=utf8")

    if err != nil {
            log.println(err)
    }

    defer db.close()

    v := book{id: 1, name: "book", ts: time.now() }

    fmt.println(v)
    stmt, err := db.preparenamed(`insert into book values (:id, :name, :ts)`)
    _, err = stmt.exec(v)
}

这是我遇到的错误:

{1 Book 2019-08-06 09:21:15.178503955 +0000 UTC m=+0.000601133}
panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x28 pc=0x604ec6]

goroutine 1 [running]:
github.com/jmoiron/sqlx.(*NamedStmt).Exec(0x0, 0x65c980, 0xc00010a060, 0xc00010a060, 0x0, 0x6cfaa0, 0xc000112020)
/root/go/src/github.com/jmoiron/sqlx/named.go:43 +0x26
main.main()
/root/go/src/dbtest/sqlx_insert.go:37 +0x284
exit status 2

解决方案


抱歉!时间戳列名称实际上是由自动化脚本更改的。虚惊!一切都很完美。感谢大家!

今天关于《如何使用 sqlx 插入给定的时间戳》的内容就介绍到这里了,是不是学起来一目了然!想要了解更多关于的内容请关注golang学习网公众号!

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