Skip to content

datatypes.Date sends wrong date when postgres.Config{ PreferSimpleProtocol: true } #309

@Vovan-VE

Description

@Vovan-VE

PostgreSQL 14.18

CREATE TABLE "temp_test_date" (
    "id" bigint NOT NULL PRIMARY KEY,
    "date" date NOT NULL
)

Go 1.24.6

	gorm.io/datatypes v1.2.6
	gorm.io/driver/postgres v1.6.0
	gorm.io/gorm v1.31.0
db, err := gorm.Open(
	postgres.New(postgres.Config{
		PreferSimpleProtocol: true,
		DSN: ...
type Model struct {
	Id   int64          `gorm:"primary_key:auto_increment:false;column:id;"`
	Date datatypes.Date `gorm:"column:date;"`
}
err := db.
	Debug().
	Create(&Model{
		Id:   10,
		Date: datatypes.Date(time.Now()),
	 }).
	Error

When PreferSimpleProtocol is true, the date inserted is actually the previous date. However Debug() logger logs what was intended:

INSERT INTO "temp_test_date" ("id","date") VALUES (10, '2025-09-18 00:00:00');

but it's not that what's actually executed. Actual value inserted is 2025-09-17.

rel #39

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions