Heim  >  Artikel  >  Backend-Entwicklung  >  Go time.Time zum Postgresql-Zeitstempel kann nicht mit time.Now() gespeichert werden

Go time.Time zum Postgresql-Zeitstempel kann nicht mit time.Now() gespeichert werden

WBOY
WBOYnach vorne
2024-02-05 22:42:081207Durchsuche

转到 time.Time 到 postgresql timestamptz 无法使用 time.Now() 保存

Frageninhalt

Hallo, ich bin neu bei Golang und versuche, den Wert time.Now() einzufügen. Variable vom Typ Time Das Seltsame ist, dass ich weder einen Fehler erhalte noch das Commit verarbeitet wird, sondern die Ausführung des Codes gestoppt wird, wenn ich versuche, ihn einzufügen. Kann mir jemand helfen herauszufinden, welchen Wert ich ausprobieren sollte?

Datenbank: ALTER TABLE abc ADD COLUMN CREATED timestamptz NULL;

Struktur{ Schöpfungszeit.Zeit db:"已创建" }

Fügen Sie den Wert ein, der vor dem Einfügen festgelegt wurde Create = time.Now()

Ich möchte, dass die Datenbank mit den neuen Datensätzen gespeichert wird


Richtige Antwort


Damit jede externe Bibliothek Ihre Strukturfelder anzeigen kann, müssen diese exportiert werden, d. h. der Name muss mit einem Großbuchstaben beginnen .

Da Ihre Definition Kleinbuchstaben verwendet created 时间,因此只有包内的代码才能看到该字段。这就是为什么您的数据库接口将“created”设置为 null, wird für dieses Feld nach bestem Wissen und Gewissen kein Wert angegeben.

type Foo struct { 
    Created time.Time db:"created"
}

Hinweis: Wenn Sie gorm verwenden, um mit der Datenbank zu interagieren, unterstützt es tatsächlich standardmäßig das, was Sie tun möchten. Benennen Sie einfach die Strukturfelder: createdathttps://gorm.io/docs/conventions.html#createdat

Das obige ist der detaillierte Inhalt vonGo time.Time zum Postgresql-Zeitstempel kann nicht mit time.Now() gespeichert werden. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:stackoverflow.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen