私は現在時刻文字列を解析し、デシベル(Postgresqlの)に保存しています:GORMとPostgreSQLを使用している場合、Goのデータベースの時間を節約する方法は?
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)
それは私にこのエラーを与えている: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
のタイプはtime.Time
です。
私はまた、文字列にevent.Time
の種類を設定し、PostgreSQLの時間データ型を使用してみました:
type Event struct {
Time string `gorm:"type:time
}
しかし、DB内のレコードを取得する際に、今、私はエラーを取得しています:
sql: Scan error on column index 4: unsupported driver -> Scan pair: time.Time -> *string
Go Time.Timeは実際には日付なので、現在私はPostgreSQL Timeを適切に使用する方法は見当たりません。あなたがそれで質問していないなら、私は単純な文字列を使うことを提案します。それ以外の場合は、完全な日付として保管してください。 –
@AlexeySoshin 'pq:R:" DateTimeParseError "S:" ERROR "C:" 22008 "M:"日付/時刻フィールドの値が範囲外です: \ "0000-01-01T21:00:00Z \" "F:" datetime.c "L:" 3540 "' –
回避策として、2099-01-01のようなダミーの日付を追加することをお勧めします。あなたの時間とこれを念頭に置いて正しく質問してください。 –