From 9e700ff067212a8c0d4a2020825a219f045b7571 Mon Sep 17 00:00:00 2001 From: Jack Christensen Date: Mon, 9 Mar 2020 10:40:40 -0500 Subject: [PATCH] Date.Set parses string --- date.go | 2 ++ date_test.go | 1 + 2 files changed, 3 insertions(+) diff --git a/date.go b/date.go index 10e41fe7..37fb8302 100644 --- a/date.go +++ b/date.go @@ -37,6 +37,8 @@ func (dst *Date) Set(src interface{}) error { switch value := src.(type) { case time.Time: *dst = Date{Time: value, Status: Present} + case string: + return dst.DecodeText(nil, []byte(value)) default: if originalSrc, ok := underlyingTimeType(src); ok { return dst.Set(originalSrc) diff --git a/date_test.go b/date_test.go index 0b77898b..5c38e7a3 100644 --- a/date_test.go +++ b/date_test.go @@ -42,6 +42,7 @@ func TestDateSet(t *testing.T) { {source: time.Date(2000, 1, 2, 0, 0, 0, 0, time.UTC), result: pgtype.Date{Time: time.Date(2000, 1, 2, 0, 0, 0, 0, time.UTC), Status: pgtype.Present}}, {source: time.Date(2200, 1, 1, 0, 0, 0, 0, time.UTC), result: pgtype.Date{Time: time.Date(2200, 1, 1, 0, 0, 0, 0, time.UTC), Status: pgtype.Present}}, {source: _time(time.Date(1970, 1, 1, 0, 0, 0, 0, time.UTC)), result: pgtype.Date{Time: time.Date(1970, 1, 1, 0, 0, 0, 0, time.UTC), Status: pgtype.Present}}, + {source: "1999-12-31", result: pgtype.Date{Time: time.Date(1999, 12, 31, 0, 0, 0, 0, time.UTC), Status: pgtype.Present}}, } for i, tt := range successfulTests {