Skip to content

Commit

Permalink
Merge pull request #431 from deepilla/issue-430
Browse files Browse the repository at this point in the history
Don't convert Unix times to nanoseconds when querying datetime fields…
  • Loading branch information
mattn authored Jul 1, 2017
2 parents afe454f + 0512385 commit 8a4c825
Show file tree
Hide file tree
Showing 2 changed files with 4 additions and 2 deletions.
5 changes: 3 additions & 2 deletions sqlite3.go
Original file line number Diff line number Diff line change
Expand Up @@ -961,10 +961,11 @@ func (rc *SQLiteRows) Next(dest []driver.Value) error {
// large to be a reasonable timestamp in seconds.
if val > 1e12 || val < -1e12 {
val *= int64(time.Millisecond) // convert ms to nsec
t = time.Unix(0, val)
} else {
val *= int64(time.Second) // convert sec to nsec
t = time.Unix(val, 0)
}
t = time.Unix(0, val).UTC()
t = t.UTC()
if rc.s.c.loc != nil {
t = t.In(rc.s.c.loc)
}
Expand Down
1 change: 1 addition & 0 deletions sqlite3_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -403,6 +403,7 @@ func TestTimestamp(t *testing.T) {
}{
{"nonsense", time.Time{}},
{"0000-00-00 00:00:00", time.Time{}},
{time.Time{}.Unix(), time.Time{}},
{timestamp1, timestamp1},
{timestamp2.Unix(), timestamp2.Truncate(time.Second)},
{timestamp2.UnixNano() / int64(time.Millisecond), timestamp2.Truncate(time.Millisecond)},
Expand Down

0 comments on commit 8a4c825

Please sign in to comment.