登录
首页 >  Golang >  Go问答

PSQL 时间戳语法

来源:stackoverflow

时间:2024-02-06 12:15:24 459浏览 收藏

编程并不是一个机械性的工作,而是需要有思考,有创新的工作,语法是固定的,但解决问题的思路则是依靠人的思维,这就需要我们坚持学习和更新自己的知识。今天golang学习网就整理分享《PSQL 时间戳语法》,文章讲解的知识点主要包括,如果你对Golang方面的知识点感兴趣,就不要错过golang学习网,在这可以对大家的知识积累有所帮助,助力开发能力的提升。

问题内容

我有一个 go 函数,它将数据插入表中,并准备和执行类似于以下内容的语句:

func insert(w http.responsewriter, r *http.request) {
    db := dbconn()
    if r.method == "post" {
        email := r.formvalue("email")
        firstname := r.formvalue("firstname")
        lastname := r.formvalue("lastname")
        createdon := time.now().utc()

        insform, err := db.prepare(`insert into public.users(email, firstname, lastname, created_on) values ($1,$2, $3, $4)`)
        checkerror(err)
        insform.exec(email, firstname, lastname, createdon)

    defer db.close()

    http.redirect(w, r, "/", 301)
}

返回的psql错误是:

error:  invalid input syntax for type timestamp: "2022-08-04 17:45:40.10189 +0000 utc"
line 1: ...) values ('[email protected]', 'test', 'testing', '2022-08-0...`

dbconn 定义为:

func dbConn() (db *sql.DB) {
    // pass the db credentials into variables
    host := goDotEnvVariable("DBHOST")
    port := goDotEnvVariable("DBPORT")
    dbUser := goDotEnvVariable("DBUSER")
    dbPass := goDotEnvVariable("DBPASS")
    dbname := goDotEnvVariable("DBNAME")
    // create a connection string
    psqlInfo := fmt.Sprintf("host=%s port=%s user=%s "+
        "password=%s dbname=%s sslmode=disable",
        host, port, dbUser, dbPass, dbname)
    db, err := sql.Open("postgres", psqlInfo)
    if err != nil {
        panic(err)
    }
    return db
}

输入具有适当 utc 时区的时间戳的正确语法是什么?


正确答案


时间戳格式是转移注意力的。在 sql 语句执行后不实现恐慌有点过分了,这样做后,我能够捕获权限错误。

insForm, err := db.Prepare(`INSERT INTO public.users(email, firstName, lastName, created_on) VALUES ($1,$2, $3, $4)`)
        CheckError(err)
        _, err = insForm.Exec(email, firstName, lastName, createdOn)
        CheckError(err)

问题是,虽然我为应用程序创建了一个单独的数据库用户,但我没有授予它权限。

将数据库 的所有权限授予 ;

无效的输入语法是将日志输出作为文本直接复制到语句中而不是将记录的时间转换为 timestampz 数据类型的结果。

以上就是《PSQL 时间戳语法》的详细内容,更多关于的资料请关注golang学习网公众号!

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