golang现在用松鼠更新设置时间

时间:2018-09-12 19:38:43

标签: mysql go

现在,我的容器的时区与MySQL的时区不同,我需要运行查询以将MySQL的时域更新为其时区。 通常,我可以使用“ edited = NOW()”运行查询,但是对于Golang松鼠,它没有设置此子句的正确方法。 我不能同时更改应用程序和mysql容器的时区,而只需要更新数据库中的日期。 有什么办法可以在Squirell中正常进行吗?

2 个答案:

答案 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()")