sql >> Databasteknik >  >> RDS >> PostgreSQL

Hur sparar man tid i databasen i Go när man använder GORM och Postgresql?

Undersökte denna fråga vidare. För närvarande finns det inget stöd i GORM för några datum-/tidstyper förutom timestamp with time zone

Se den här delen av koden från dialect_postgres.go :

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

Så i princip ser jag två alternativ för dig:

Använd antingen varchar(10) i DB och string i Go, spara det helt enkelt som "21:00" (där 10 är ett nummer som passar dig)

Eller använd timestamp with time zone i DB, time.Time i Go och formatera din datumdel som ett konstant datum, 1970-01-01, till exempel:

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

I så fall måste du utelämna datumdelen i din presentation, men om du planerar att välja efter datumintervall kan det fungera bättre för dig.



  1. Optimera en postgres likhetsfråga (pg_trgm + gin index)

  2. Importera flera .sql-dumpfiler till mysql-databasen från skalet

  3. Kan en INITIELLT UPPSKJUTAD begränsning definieras med en Hibernate-kommentar?

  4. PHP för att lagra bilder i MySQL eller inte?