Прямо сейчас мой часовой пояс контейнера отличается от MySQL, и мне нужно запустить запрос, чтобы просто обновить поле времени MySQL в его часовой пояс. Обычно я могу запустить запрос с помощью "edit = NOW()", но с белой Golang у него нет надлежащего способа установить этот раздел. Я не могу изменить как мое приложение, так и часовой пояс контейнера mysql, и мне просто нужно обновить дату в БД. Есть ли способ сделать в Squirell правильно?
Я предполагаю, что вы используете этот пакет squirrel, в следующий раз дадите ссылку и, в идеале, пример кода. Поэтому я предполагаю, что вы действительно хотите, чтобы это было так:
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()")
nil
или просто ноль, но это не сработало. Это переводится в запрос как dt_edited=NOW() = ?