From 557a6f6c550bce0872b1628fbb9d9679b726191c Mon Sep 17 00:00:00 2001 From: black Date: Mon, 20 Feb 2023 11:18:47 +0800 Subject: [PATCH] distinguish between schema.Time and tag time fix https://github.com/go-gorm/gorm/issues/6033 --- bigquery.go | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/bigquery.go b/bigquery.go index b214446..35559bd 100644 --- a/bigquery.go +++ b/bigquery.go @@ -3,16 +3,18 @@ package bigquery import ( "database/sql" "fmt" - "gorm.io/driver/bigquery/adaptor" - _ "gorm.io/driver/bigquery/driver" + "reflect" + "regexp" + "strings" + "gorm.io/gorm" "gorm.io/gorm/clause" "gorm.io/gorm/logger" "gorm.io/gorm/migrator" "gorm.io/gorm/schema" - "reflect" - "regexp" - "strings" + + "gorm.io/driver/bigquery/adaptor" + _ "gorm.io/driver/bigquery/driver" ) type Dialector struct { @@ -87,7 +89,12 @@ func (dialector Dialector) DataTypeOf(field *schema.Field) string { case schema.String: return "STRING" case schema.Time: - return "TIMESTAMP" + // Distinguish between schema.Time and tag time + if val, ok := field.TagSettings["TYPE"]; ok { + return val + } else { + return "TIMESTAMP" + } case schema.Bytes: return "BYTES" }