@@ -141,22 +141,22 @@ var formatTimeTests = []struct {
141141 time time.Time
142142 expected string
143143}{
144- {time.Time {}, "0001-01-01T00 :00:00Z" },
145- {time .Date (2001 , time .February , 3 , 4 , 5 , 6 , 123456789 , time .FixedZone ("" , 0 )), "2001-02-03T04 :05:06.123456789Z" },
146- {time .Date (2001 , time .February , 3 , 4 , 5 , 6 , 123456789 , time .FixedZone ("" , 2 * 60 * 60 )), "2001-02-03T04 :05:06.123456789+02:00" },
147- {time .Date (2001 , time .February , 3 , 4 , 5 , 6 , 123456789 , time .FixedZone ("" , - 6 * 60 * 60 )), "2001-02-03T04 :05:06.123456789-06:00" },
148- {time .Date (2001 , time .February , 3 , 4 , 5 , 6 , 0 , time .FixedZone ("" , - (7 * 60 * 60 + 30 * 60 + 9 ))), "2001-02-03T04 :05:06-07:30:09" },
149-
150- {time .Date (1 , time .February , 3 , 4 , 5 , 6 , 123456789 , time .FixedZone ("" , 0 )), "0001-02-03T04 :05:06.123456789Z" },
151- {time .Date (1 , time .February , 3 , 4 , 5 , 6 , 123456789 , time .FixedZone ("" , 2 * 60 * 60 )), "0001-02-03T04 :05:06.123456789+02:00" },
152- {time .Date (1 , time .February , 3 , 4 , 5 , 6 , 123456789 , time .FixedZone ("" , - 6 * 60 * 60 )), "0001-02-03T04 :05:06.123456789-06:00" },
153-
154- {time .Date (0 , time .February , 3 , 4 , 5 , 6 , 123456789 , time .FixedZone ("" , 0 )), "0001-02-03T04 :05:06.123456789Z BC" },
155- {time .Date (0 , time .February , 3 , 4 , 5 , 6 , 123456789 , time .FixedZone ("" , 2 * 60 * 60 )), "0001-02-03T04 :05:06.123456789+02:00 BC" },
156- {time .Date (0 , time .February , 3 , 4 , 5 , 6 , 123456789 , time .FixedZone ("" , - 6 * 60 * 60 )), "0001-02-03T04 :05:06.123456789-06:00 BC" },
157-
158- {time .Date (1 , time .February , 3 , 4 , 5 , 6 , 0 , time .FixedZone ("" , - (7 * 60 * 60 + 30 * 60 + 9 ))), "0001-02-03T04 :05:06-07:30:09" },
159- {time .Date (0 , time .February , 3 , 4 , 5 , 6 , 0 , time .FixedZone ("" , - (7 * 60 * 60 + 30 * 60 + 9 ))), "0001-02-03T04 :05:06-07:30:09 BC" },
144+ {time.Time {}, "0001-01-01 00 :00:00Z" },
145+ {time .Date (2001 , time .February , 3 , 4 , 5 , 6 , 123456789 , time .FixedZone ("" , 0 )), "2001-02-03 04 :05:06.123456789Z" },
146+ {time .Date (2001 , time .February , 3 , 4 , 5 , 6 , 123456789 , time .FixedZone ("" , 2 * 60 * 60 )), "2001-02-03 04 :05:06.123456789+02:00" },
147+ {time .Date (2001 , time .February , 3 , 4 , 5 , 6 , 123456789 , time .FixedZone ("" , - 6 * 60 * 60 )), "2001-02-03 04 :05:06.123456789-06:00" },
148+ {time .Date (2001 , time .February , 3 , 4 , 5 , 6 , 0 , time .FixedZone ("" , - (7 * 60 * 60 + 30 * 60 + 9 ))), "2001-02-03 04 :05:06-07:30:09" },
149+
150+ {time .Date (1 , time .February , 3 , 4 , 5 , 6 , 123456789 , time .FixedZone ("" , 0 )), "0001-02-03 04 :05:06.123456789Z" },
151+ {time .Date (1 , time .February , 3 , 4 , 5 , 6 , 123456789 , time .FixedZone ("" , 2 * 60 * 60 )), "0001-02-03 04 :05:06.123456789+02:00" },
152+ {time .Date (1 , time .February , 3 , 4 , 5 , 6 , 123456789 , time .FixedZone ("" , - 6 * 60 * 60 )), "0001-02-03 04 :05:06.123456789-06:00" },
153+
154+ {time .Date (0 , time .February , 3 , 4 , 5 , 6 , 123456789 , time .FixedZone ("" , 0 )), "0001-02-03 04 :05:06.123456789Z BC" },
155+ {time .Date (0 , time .February , 3 , 4 , 5 , 6 , 123456789 , time .FixedZone ("" , 2 * 60 * 60 )), "0001-02-03 04 :05:06.123456789+02:00 BC" },
156+ {time .Date (0 , time .February , 3 , 4 , 5 , 6 , 123456789 , time .FixedZone ("" , - 6 * 60 * 60 )), "0001-02-03 04 :05:06.123456789-06:00 BC" },
157+
158+ {time .Date (1 , time .February , 3 , 4 , 5 , 6 , 0 , time .FixedZone ("" , - (7 * 60 * 60 + 30 * 60 + 9 ))), "0001-02-03 04 :05:06-07:30:09" },
159+ {time .Date (0 , time .February , 3 , 4 , 5 , 6 , 0 , time .FixedZone ("" , - (7 * 60 * 60 + 30 * 60 + 9 ))), "0001-02-03 04 :05:06-07:30:09 BC" },
160160}
161161
162162func TestFormatTs (t * testing.T ) {
@@ -168,6 +168,26 @@ func TestFormatTs(t *testing.T) {
168168 }
169169}
170170
171+ func TestFormatTsBackend (t * testing.T ) {
172+ db := openTestConn (t )
173+ defer db .Close ()
174+
175+ var str string
176+ err := db .QueryRow ("SELECT '2001-02-03T04:05:06.007-08:09:10'::time" ).Scan (& str )
177+ if err == nil {
178+ t .Fatalf ("PostgreSQL is accepting an ISO timestamp input for time" )
179+ }
180+
181+ for i , tt := range formatTimeTests {
182+ for _ , typ := range []string {"date" , "time" , "timetz" , "timestamp" , "timestamptz" } {
183+ err = db .QueryRow ("SELECT $1::" + typ + "::text" , tt .time ).Scan (& str )
184+ if err != nil {
185+ t .Errorf ("%d: incorrect time format for %v on the backend: %v" , i , typ , err )
186+ }
187+ }
188+ }
189+ }
190+
171191func TestTimestampWithTimeZone (t * testing.T ) {
172192 db := openTestConn (t )
173193 defer db .Close ()
0 commit comments