Ich bin derzeit eine Zeit-String-Parsing und an den db (Postgresql) zu speichern:Wie spart man Zeit in der Datenbank in Go bei der Verwendung von GORM und Postgresql?
event.Time, _ := time.Parse("3:04 PM", "9:00 PM")
// value of event.Time now is: 0000-01-01 21:00:00 +0000 UTC
db.Create(&event)
Es gibt mir diese Fehlermeldung: pq: R:"DateTimeParseError" S:"ERROR" C:"22008" M:"date/time field value out of range: \"0000-01-01T21:00:00Z\"" F:"datetime.c" L:"3540"
event.Time
‚s-Typ ist time.Time
.
Ich habe auch versucht event.Time
‚s Typ String Einstellung und Zeitdatentyp in postgresql mit:
type Event struct {
Time string `gorm:"type:time
}
Aber jetzt einen Fehler erhalte ich, wenn Datensätze in der db holen:
sql: Scan error on column index 4: unsupported driver -> Scan pair: time.Time -> *string
Das ist, weil Go time.Time eigentlich ein Datum ist. Momentan sehe ich keine Möglichkeit, PostgreSQL Time richtig zu benutzen. Wenn Sie nicht danach fragen, würde ich vorschlagen, eine einfache Zeichenfolge zu verwenden. Andernfalls speichern Sie es als ein vollständiges Datum. –
@AlexeySoshin Ich habe bereits versucht, es als ein vollständiges Datum zu speichern, aber es gibt mir diesen Fehler: 'pq: R:" DateTimeParseError "S:" FEHLER "C:" 22008 "M:" Datum/Uhrzeit Feldwert außerhalb des Bereichs: \ "0000-01-01T21: 00: 00Z \" "F:" datetime.c "L:" 3540 "' –
Als Workaround würde ich vorschlagen, ein Dummy-Datum wie 2099-01-01 hinzuzufügen und dann zu speichern Ihre Zeit und die Frage dazu richtig zu diesem Thema. –