From 26ddfbdd351e7ecbb29de5886db4c65594876c4e Mon Sep 17 00:00:00 2001 From: Louis des Landes Date: Wed, 14 Apr 2021 14:46:14 +0930 Subject: [PATCH 1/2] Make timestamps at nanosecond precision. --- stmt.go | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/stmt.go b/stmt.go index 2485b60..40496d5 100644 --- a/stmt.go +++ b/stmt.go @@ -17,9 +17,10 @@ package dapi import ( "context" "database/sql/driver" + "time" + "github.com/aws/aws-sdk-go/aws" "github.com/aws/aws-sdk-go/service/rdsdataservice" - "time" ) type Stmt struct { @@ -82,7 +83,7 @@ func asField(value driver.Value) *rdsdataservice.Field { case string: return &rdsdataservice.Field{StringValue: aws.String(v)} case time.Time: - s := v.Format("2006-01-02 15:04:05") + s := v.Format("2006-01-02 15:04:05.999999999") return &rdsdataservice.Field{StringValue: aws.String(s)} default: return &rdsdataservice.Field{IsNull: aws.Bool(true)} From 101a035545a6c43db27e8278a311aab385dbd0a3 Mon Sep 17 00:00:00 2001 From: Louis des Landes Date: Wed, 14 Apr 2021 15:10:15 +0930 Subject: [PATCH 2/2] Standardize time precision --- config.go | 2 ++ executor.go | 2 +- stmt.go | 2 +- 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/config.go b/config.go index 07446ec..811793a 100644 --- a/config.go +++ b/config.go @@ -22,3 +22,5 @@ type config struct { secretARN string resourceARN string } + +const timeFormat = "2006-01-02 15:04:05.999999999" diff --git a/executor.go b/executor.go index 3313afc..6803560 100644 --- a/executor.go +++ b/executor.go @@ -62,7 +62,7 @@ func (r *Result) Next(dest []driver.Value) error { layout = "2006-01-02" case "DATETIME", "TIMESTAMP": - layout = "2006-01-02 15:04:05" + layout = timeFormat case "YEAR": layout = "2006" diff --git a/stmt.go b/stmt.go index 40496d5..84c8e17 100644 --- a/stmt.go +++ b/stmt.go @@ -83,7 +83,7 @@ func asField(value driver.Value) *rdsdataservice.Field { case string: return &rdsdataservice.Field{StringValue: aws.String(v)} case time.Time: - s := v.Format("2006-01-02 15:04:05.999999999") + s := v.Format(timeFormat) return &rdsdataservice.Field{StringValue: aws.String(s)} default: return &rdsdataservice.Field{IsNull: aws.Bool(true)}