Habe dieses Problem weiter untersucht. Derzeit gibt es in GORM keine Unterstützung für Datums-/Uhrzeittypen außer timestamp with time zone
Siehe diesen Teil des Codes von dialect_postgres.go :
case reflect.Struct:
if _, ok := dataValue.Interface().(time.Time); ok {
sqlType = "timestamp with time zone"
}
Also im Grunde sehe ich zwei Möglichkeiten für Sie:
Verwenden Sie entweder varchar(10)
in DB und string
in Go speichern Sie es einfach als "9:00 PM" (wobei 10 eine Zahl ist, die zu Ihnen passt)
Oder verwenden Sie timestamp with time zone
in DB, time.Time
in Go und formatieren Sie Ihren Datumsteil als konstantes Datum, 01.01.1970, zum Beispiel:
time.Parse("2006-01-02 3:04PM", "1970-01-01 9:00PM")
In diesem Fall müssen Sie den Datumsteil in Ihrer Präsentation weglassen, aber wenn Sie nach Datumsbereich auswählen möchten, könnte das für Sie besser funktionieren.