Investigué este problema más a fondo. Actualmente, GORM no admite ningún tipo de fecha/hora excepto timestamp with time zone
Vea esta parte del código de dialect_postgres.go :
case reflect.Struct:
if _, ok := dataValue.Interface().(time.Time); ok {
sqlType = "timestamp with time zone"
}
Así que básicamente veo dos opciones para ti:
Utilice varchar(10)
en DB, y string
en Go, simplemente guárdelo como "9:00 p. m." (donde 10 es el número que más le convenga)
O use timestamp with time zone
en DB, time.Time
en Go, y formatee su parte de fecha como una fecha constante, 01/01/1970, por ejemplo:
time.Parse("2006-01-02 3:04PM", "1970-01-01 9:00PM")
En ese caso, tendrá que omitir la parte de la fecha en su presentación, pero si planea seleccionar por rango de fechas, eso podría funcionar mejor para usted.