Add support for extracting 2006-01-02 formatted timestamps.
SQLite3 stores timestamps very naively -- they're completely untyped, and can contain any value. The previous implementation always inserts values in the 'datetime' format, and returns an error when attempting to extract a field with a different format. Some legacy databases, unfortunately, were generated using the 'date' SQLite3 function, which produces rows in the '2006-01-02' format. This patch adds a special case so that these rows can be extracted without error.
This commit is contained in:
@@ -27,6 +27,7 @@ import (
|
||||
)
|
||||
|
||||
const SQLiteTimestampFormat = "2006-01-02 15:04:05"
|
||||
const SQLiteDateFormat = "2006-01-02"
|
||||
|
||||
func init() {
|
||||
sql.Register("sqlite3", &SQLiteDriver{})
|
||||
@@ -313,7 +314,10 @@ func (rc *SQLiteRows) Next(dest []driver.Value) error {
|
||||
if rc.decltype[i] == "timestamp" {
|
||||
dest[i], err = time.Parse(SQLiteTimestampFormat, s)
|
||||
if err != nil {
|
||||
return err
|
||||
dest[i], err = time.Parse(SQLiteDateFormat, s)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
} else {
|
||||
dest[i] = s
|
||||
|
||||
Reference in New Issue
Block a user