现在,我的容器的时区与MySQL的时区不同,我需要运行查询以将MySQL的时域更新为其时区。 通常,我可以使用“ edited = NOW()”运行查询,但是对于Golang松鼠,它没有设置此子句的正确方法。 我不能同时更改应用程序和mysql容器的时区,而只需要更新数据库中的日期。 有什么办法可以在Squirell中正常进行吗?
答案 0 :(得分:1)
您需要执行Set(column, "NOW()")
而不是Set(column, sq.Expr("NOW()"))
答案 1 :(得分:0)
我假设您正在使用此squirrel软件包,下一次给出一个链接,最好提供一些示例代码。因此,我假设您真正想要的是这样的sql:
update tablename set dt_edited=NOW() where id=1;
您可以轻松地使用fmt.Sprintf安全地构建它,然后直接使用db驱动程序或通过sq.Exec()执行它。
sql := fmt.Sprintf("update tablename set dt_edited=NOW() where id=%d" tableA.ID)
使用松鼠,您可能想要以下东西:
db.Exec(update tablename set dt_edited=NOW() where id=?",tableA.ID)
我不确定确切的语法,但是类似的东西应该可以正常工作,您只需要一个查询对象即可将sql发送到。请勿尝试将dt_edited = NOW()作为参数发送,因为这样可以逃脱可以安全地传递的id。
您将其作为字符串传递。试试:
Set("dt_edited=NOW()")