sql >> Base de Datos >  >> RDS >> PostgreSQL

¿Cómo ahorrar tiempo en la base de datos en Go al usar GORM y Postgresql?

Investigué este problema más a fondo. Actualmente, GORM no admite ningún tipo de fecha/hora excepto timestamp with time zone

Vea esta parte del código de dialect_postgres.go :

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

Así que básicamente veo dos opciones para ti:

Utilice varchar(10) en DB, y string en Go, simplemente guárdelo como "9:00 p. m." (donde 10 es el número que más le convenga)

O use timestamp with time zone en DB, time.Time en Go, y formatee su parte de fecha como una fecha constante, 01/01/1970, por ejemplo:

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

En ese caso, tendrá que omitir la parte de la fecha en su presentación, pero si planea seleccionar por rango de fechas, eso podría funcionar mejor para usted.