Undersökte denna fråga vidare. För närvarande finns det inget stöd i GORM för några datum-/tidstyper förutom timestamp with time zone
Se den här delen av koden från dialect_postgres.go :
case reflect.Struct:
if _, ok := dataValue.Interface().(time.Time); ok {
sqlType = "timestamp with time zone"
}
Så i princip ser jag två alternativ för dig:
Använd antingen varchar(10)
i DB och string
i Go, spara det helt enkelt som "21:00" (där 10 är ett nummer som passar dig)
Eller använd timestamp with time zone
i DB, time.Time
i Go och formatera din datumdel som ett konstant datum, 1970-01-01, till exempel:
time.Parse("2006-01-02 3:04PM", "1970-01-01 9:00PM")
I så fall måste du utelämna datumdelen i din presentation, men om du planerar att välja efter datumintervall kan det fungera bättre för dig.