如何将日期字符串转换为Time in插入到Golang的mysql驱动程序中



因此,我的问题是将字符串日期("1941-09-09"(转换为时间类型。

resultInsertUser, err := tx.Exec(`INSERT INTO user 
(name, birthdate, password, email, document, phone, is_admin)
VALUES (?, ?, ?, ?, ?, ?, ?)`,
user.Name,
timestamp,
user.Password,
user.Email,
user.Document,
user.Phone,
user.IsAdmin)

我正在使用官方文档中描述的Parse函数,并且可以工作,但是,当使用MySQL驱动程序的插入查询不起作用时,错误消息如下:(

"Incorrect datetime value: '1941-09-09 00:00:02' for column 'birthdate' at row 1"

我在努力利用时间。Now((改为用于测试和…的变量。。。工作,怎么会这样?

输出两个变量:

now := time.Now()
timestamp, _ := time.Parse("2006-01-02", user.Birthdate)
fmt.Printf("now: %vntimestamp: %v",
now,
timestamp)
now: 2022-11-05 08:28:59.671061 -0300 -03 m=+3.423587668
timestamp: 1941-09-09 00:00:00 +0000 UTC

有人帮我吗?

您的代码是正确的。魔鬼在细节中(在mysql文档中(。以下是根据mysql-doc:的格式

数据类型日期日期日期日期日期时间TIMESTAMPYYYY-MM-DD hh:MM:ss1970-01-01 00:00:01至2038-01-19 03:14:07(UTC,即Unix时间(

最新更新