aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormattn <mattn.jp@gmail.com>2017-07-01 20:48:21 +0900
committerGitHub <noreply@github.com>2017-07-01 20:48:21 +0900
commit8a4c825cfc99b620bd78dbeac30348782a3b3eb9 (patch)
treeecca0bc608fe592ac2007e6cb180c71a1375b558
parentMerge pull request #429 from emakeev/cgo_panic_fix (diff)
parentDon't convert Unix times to nanoseconds when querying datetime fields. Fixes ... (diff)
downloadgolite-8a4c825cfc99b620bd78dbeac30348782a3b3eb9.tar.gz
golite-8a4c825cfc99b620bd78dbeac30348782a3b3eb9.tar.xz
Merge pull request #431 from deepilla/issue-430
Don't convert Unix times to nanoseconds when querying datetime fields…
-rw-r--r--sqlite3.go5
-rw-r--r--sqlite3_test.go1
2 files changed, 4 insertions, 2 deletions
diff --git a/sqlite3.go b/sqlite3.go
index b34c3a5..d3a6407 100644
--- a/sqlite3.go
+++ b/sqlite3.go
@@ -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)
}
diff --git a/sqlite3_test.go b/sqlite3_test.go
index 03b678d..e563479 100644
--- a/sqlite3_test.go
+++ b/sqlite3_test.go
@@ -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)},