登录
首页 >  Golang >  Go问答

更新设置时间的同时,golang和squirrel现在同步进行

来源:stackoverflow

时间:2024-03-14 23:39:29 453浏览 收藏

知识点掌握了,还需要不断练习才能熟练运用。下面golang学习网给大家带来一个Golang开发实战,手把手教大家学习《更新设置时间的同时,golang和squirrel现在同步进行》,在实现功能的过程中也带大家重新温习相关知识点,温故而知新,回头看看说不定又有不一样的感悟!

问题内容

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


解决方案


您需要执行 set(column, sq.expr("now()")) 而不是 set(column, "now()")

我假设您正在使用这个 squirrel 包,下次给出一个链接,最好是一些示例代码。所以我假设你真正想要的是这样的sql:

update tablename set dt_edited=now() where id=1;

您可以轻松地使用 fmt.sprintf 安全地构建它,并直接使用数据库驱动程序或通过 sq.exec() 执行它。

sql := fmt.sprintf("update tablename set dt_edited=now() where id=%d" tablea.id)

使用 squirrel 你可能想要这样的东西:

db.exec(update tablename set dt_edited=now() where id=?",tablea.id)

我不确定确切的语法,但类似的东西应该可以正常工作,你只需要一个查询对象来发送sql。不要尝试将 dt_edited=now() 作为参数发送,因为这会转义您可以以这种方式安全传递的 id。

您将其作为字符串传递。尝试:

Set("dt_edited=NOW()")

今天带大家了解了的相关知识,希望对你有所帮助;关于Golang的技术知识我们会一点点深入介绍,欢迎大家关注golang学习网公众号,一起学习编程~

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>