Tento problém dále zkoumal. V současné době není v GORMu podporováno žádné datum/čas kromě timestamp with time zone
Podívejte se na tuto část kódu z dialect_postgres.go :
case reflect.Struct:
if _, ok := dataValue.Interface().(time.Time); ok {
sqlType = "timestamp with time zone"
}
Takže v zásadě pro vás vidím dvě možnosti:
Buď použijte varchar(10)
v DB a string
v Go to jednoduše uložte jako „21:00“ (kde 10 je nějaké číslo, které vám vyhovuje)
Nebo použijte timestamp with time zone
v DB, time.Time
v Go a naformátujte část data jako konstantní datum, například 01/01/1970, například:
time.Parse("2006-01-02 3:04PM", "1970-01-01 9:00PM")
V takovém případě budete muset v prezentaci vynechat část s datem, ale pokud plánujete výběr podle období, mohlo by to pro vás fungovat lépe.