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

前端之家收集整理的这篇文章主要介绍了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相关文章