PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Wie spart man Zeit in der Datenbank in Go bei Verwendung von GORM und Postgresql?

Habe dieses Problem weiter untersucht. Derzeit gibt es in GORM keine Unterstützung für Datums-/Uhrzeittypen außer timestamp with time zone

Siehe diesen Teil des Codes von dialect_postgres.go :

case reflect.Struct:
   if _, ok := dataValue.Interface().(time.Time); ok {
      sqlType = "timestamp with time zone"
}

Also im Grunde sehe ich zwei Möglichkeiten für Sie:

Verwenden Sie entweder varchar(10) in DB und string in Go speichern Sie es einfach als "9:00 PM" (wobei 10 eine Zahl ist, die zu Ihnen passt)

Oder verwenden Sie timestamp with time zone in DB, time.Time in Go und formatieren Sie Ihren Datumsteil als konstantes Datum, 01.01.1970, zum Beispiel:

time.Parse("2006-01-02 3:04PM", "1970-01-01 9:00PM")

In diesem Fall müssen Sie den Datumsteil in Ihrer Präsentation weglassen, aber wenn Sie nach Datumsbereich auswählen möchten, könnte das für Sie besser funktionieren.