sql >> Database teknologi >  >> RDS >> PostgreSQL

Hvordan sparer man tid i databasen i Go, når man bruger GORM og Postgresql?

Undersøgte dette spørgsmål nærmere. I øjeblikket er der ingen understøttelse i GORM for nogen dato/klokkeslætstyper undtagen timestamp with time zone

Se denne del af koden fra dialect_postgres.go :

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

Så grundlæggende ser jeg to muligheder for dig:

Brug enten varchar(10) i DB, og string i Go, gem det blot som "21:00" (hvor 10 er et tal, der passer til dig)

Eller brug timestamp with time zone i DB, time.Time i Go, og formater din datodel som en konstant dato, 01/01/1970, for eksempel:

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

I så fald bliver du nødt til at udelade datodelen i din præsentation, men hvis du planlægger at vælge efter datointerval, kunne det fungere bedre for dig.



  1. oracle hurtigere personsøgningsforespørgsel

  2. MySQL:GROUP_CONCAT med en ORDER BY COUNT?

  3. Sådan rydder du MySQL-skærmen åbnet gennem MySQL Command Line Client på Windows XP

  4. Undgå eksklusive adgangslåse på refererede tabeller ved DROPping i PostgreSQL