mysql – 使用带有Go的now()INSERT datetime

Using sql database driver

我一直在引用上面的帖子.但令人不安的是做一个INSERT语句,其中一个字段是datetime.我试着做“NOW()”但是当我检查mysql数据库时,我正在看到00:00:00.任何人都知道我可以使用什么作为正确插入日期时间的值?

另外 – 我知道我可以使用go的时间包构建日期时间,但我不想使用运行Go的机器的时间戳.我想要运行mysql的机器的日期时间.亨西,为什么我用“NOW()”.

stmt,err := db.Prepare("INSERT userinfo SET username=?,departname=?,created=?")
checkErr(err)

res,err := stmt.Exec("reckhou","IT","NOW()")
checkErr(err)

id,err := res.LastInsertId()
checkErr(err)

fmt.Println(id)
最佳答案
NOW()需要是SQL文本的一部分,它不是绑定值.

INSERT userinfo SET username=?,created=NOW()

你编写它的方式,MySQL看到“NOW()”作为文字字符串,好像它是像’foo’这样的旧字符串. MySQL正在将该字符串值转换为DATETIME(MySQL期望格式接近’YYYY-MM-DD HH:MM:SS’,并且它无法将其转换为有效日期.我们期望NULL或者像你所见的特别“零日期”.

相关文章

在正式开始之前,我们先来看下 MySQL 服务器的配置和版本号信...
> [合辑地址:MySQL全面瓦解](https://www.cnblogs.c...
物理服务机的CPU、内存、存储设备、连接数等资源有限,某个时...
1 回顾 上一节我们详细讲解了如何对数据库进行分区操作,包括...
navicat查看某个表的所有字段的详细信息 navicat设计表只能一...
文章浏览阅读4.3k次。转载请把头部出处链接和尾部二维码一起...