【问题标题】:ISO date format in golanggolang中的ISO日期格式
【发布时间】:2018-03-25 05:39:57
【问题描述】:

ISO 日期格式为 YYYY-MM-DD。 https://github.com/golang/go/issues/2141

type hr struct {
    USER_DATE  string
    USER_ID  string
}

rows, err := db.Query(`SELECT "USER_DATE","USER_ID" FROM user`)
    if err != nil {
        http.Error(w, http.StatusText(500), 500)
    return
    }

defer rows.Close()

for rows.Next() {
    hr := hr{}
    err := rows.Scan(&hr.USER_DATE, &hr.USER_ID)

结果会是这样的:

2018-03-21T00:00:00Z,TB

我认为这应该可行,但它没有:

type hr struct {
    USER_DATE  time.Format("2006-01-02") //<-- gives an error
    USER_ID  string
}

期望的结果应该是:

2018-03-21,TB

如何从 sql 中获取日期并以 ISO 格式显示日期?

【问题讨论】:

    标签: sql go


    【解决方案1】:

    你至少有两个解决方案:

    1-检查您是否可以直接在您的 SQL 语句中使用数据库内置函数(在此处查看 SQLite)。

    2-一旦你完成了... rows.Scan(&amp;hr.USER_DATE ...:

    layout := "2006-01-02T15:04:05Z"
    t, err := time.Parse(layout, hr.USER_DATE)
    
    if err != nil {
        fmt.Println(err)
    }
    
    hr.USER_DATE = t.Format("2006-01-02")
    

    并阅读this article too

    【讨论】:

    • 感谢您的提示。在 Postgresql 中执行此操作要简单得多:“to_char("USER_DATE",'YYYY-MM-DD')”。 Golang 似乎很复杂。
    猜你喜欢
    • 1970-01-01
    • 2023-01-03
    • 1970-01-01
    • 1970-01-01
    • 2016-03-06
    • 1970-01-01
    • 2013-05-22
    • 2021-02-14
    • 1970-01-01
    相关资源
    最近更新 更多