Indagato ulteriormente questo problema. Al momento, in GORM non è supportato alcun tipo di data/ora ad eccezione di timestamp with time zone
Guarda questa parte del codice da dialect_postgres.go :
case reflect.Struct:
if _, ok := dataValue.Interface().(time.Time); ok {
sqlType = "timestamp with time zone"
}
Quindi in pratica vedo due opzioni per te:
Usa varchar(10)
in DB e string
in Go, salvalo semplicemente come "9:00 PM" (dove 10 è un numero che fa per te)
Oppure usa timestamp with time zone
nel DB, time.Time
in Vai e formatta la parte della data come data costante, 01/01/1970, ad esempio:
time.Parse("2006-01-02 3:04PM", "1970-01-01 9:00PM")
In tal caso dovrai omettere la parte relativa alla data nella presentazione, ma se prevedi di selezionare per intervallo di date, potrebbe funzionare meglio per te.