PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Comment gagner du temps dans la base de données en Go lors de l'utilisation de GORM et Postgresql ?

É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.