Étudié cette question plus loin. Actuellement, il n'y a pas de prise en charge dans GORM pour les types Date/Heure à l'exception de timestamp with time zone
Voir cette partie de code de dialect_postgres.go :
case reflect.Struct:
if _, ok := dataValue.Interface().(time.Time); ok {
sqlType = "timestamp with time zone"
}
Donc, en gros, je vois deux options pour vous :
Soit utiliser varchar(10)
dans DB, et string
dans Go, enregistrez-le simplement sous "21:00" (où 10 est un nombre qui vous convient)
Ou utilisez timestamp with time zone
dans la BD, time.Time
dans Go, et formatez votre partie de date comme une date constante, 01/01/1970, par exemple :
time.Parse("2006-01-02 3:04PM", "1970-01-01 9:00PM")
Dans ce cas, vous devrez omettre la partie date de votre présentation, mais si vous prévoyez de sélectionner par plage de dates, cela pourrait mieux fonctionner pour vous.