Zbadano tę kwestię dalej. Obecnie GORM nie obsługuje żadnych typów daty/godziny z wyjątkiem timestamp with time zone
Zobacz tę część kodu z dialect_postgres.go :
case reflect.Struct:
if _, ok := dataValue.Interface().(time.Time); ok {
sqlType = "timestamp with time zone"
}
Więc w zasadzie widzę dla ciebie dwie opcje:
Użyj varchar(10)
w DB i string
w Go, po prostu zapisz go jako „21:00” (gdzie 10 to jakaś liczba, która Ci odpowiada)
Lub użyj timestamp with time zone
w DB, time.Time
w Go i sformatuj część daty jako stałą datę, 01.01.2070, na przykład:
time.Parse("2006-01-02 3:04PM", "1970-01-01 9:00PM")
W takim przypadku musisz pominąć w prezentacji część dotyczącą daty, ale jeśli planujesz wybrać według zakresu dat, może to być dla Ciebie lepsze.