Golang обновил установленное время теперь с белкой - PullRequest
0 голосов
/ 12 сентября 2018

Прямо сейчас часовой пояс моего контейнера отличается от MySQL, и мне нужно выполнить запрос, чтобы просто обновить поле времени в MySQL до его часового пояса. Обычно я могу выполнить запрос с помощью «edited = NOW ()», но с белкой Голанга у него нет правильного способа задать это предложение. Я не могу изменить и мое приложение, и часовой пояс контейнера MySQL, и мне просто нужно обновить дату в БД. Есть ли способ сделать в Squirell правильно?

Ответы [ 2 ]

0 голосов
/ 03 января 2019

Вместо Set(column, "NOW()") вам нужно сделать Set(column, sq.Expr("NOW()"))

0 голосов
/ 13 сентября 2018

Я предполагаю, что вы используете этот пакет 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 () в качестве параметра, так как это будет экранировано идентификатором, который вы можете безопасно передать таким образом.


Вы передаете это как строку. Попробуйте:

Set("dt_edited=NOW()")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...