Giter Club home page Giter Club logo

Comments (5)

jarethdisley avatar jarethdisley commented on May 22, 2024

This looks like an issue with using GoLang RFC3339 / RFC3339Nano timestamps..?

from go-sqlite3.

mattn avatar mattn commented on May 22, 2024

I think, if the values will be possible to be nil, it should be used for string or another types. How do you think?

from go-sqlite3.

pwaller avatar pwaller commented on May 22, 2024

@mattn, I didn't quite understand, what do you mean? What should be used for string types?

We would really like to use this library over here, but we need dates to work correctly.

from go-sqlite3.

mattn avatar mattn commented on May 22, 2024

Ah, sorry. I was sleepy. You can use *time.Time instead of time.Time.

package main

import (
    "database/sql"
    "fmt"
    _ "github.com/mattn/go-sqlite3"
    "log"
    "os"
    "time"
)

func main() {
    os.Remove("boooo.db")
    db, err := sql.Open("sqlite3", "boooo.db")
    if err != nil {
        log.Fatal("Failed to open database:", err)
    }
    defer db.Close()

    db.Exec(`create table foo (id integer, dt datetime);`)
    db.Exec(`insert into foo(id, dt) values(1, datetime('now'))`)
    db.Exec(`insert into foo(id, dt) values(2, null)`)
    rows, err := db.Query(`select id, dt from foo`)
    if err != nil {
        log.Fatal("Failed to call db.Query:", err)
    }
    defer rows.Close()
    for rows.Next() {
        var id int
        var dt *time.Time
        err = rows.Scan(&id, &dt)
        if err != nil {
            log.Fatal("Failed to db.Query:", err)
        }
        fmt.Println(id, dt)
    }
}

This dt should be datetime or nil. You can use string instead of it. This is not a spec of go-sqlite3. So, sorry about I can't fix this.

from go-sqlite3.

sean-duffy avatar sean-duffy commented on May 22, 2024

It turned out the problem was actually because the database being used was using this time format: 2014-05-21 12:55:40+00:00, which wasn't included in SQLiteTimestampFormats. I have added it and submitted a pull request.

from go-sqlite3.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.