我一直在引用上面的帖子.但令人不安的是做一个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或者像你所见的特别“零日期”.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。