Golang обновил установленное время теперь с белкой

0

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

  • 1
    Можете ли вы дать код для контекста?
  • 0
    Как мне нужно запустить что-то вроде этого sq.Update (tableA). Где ("id =?", TableA.ID). Set ("dt_edited", "NOW ()") Но приведенный выше код не работает, так как он будет обрабатывать NOW () как строку, а не функцию MySQL. И я не могу использовать свое местное время, потому что локальное время контейнера приложения находится в другом часовом поясе, я пытался запустить Set ("dt_edited = NOW ()", nil), но он не работает так же хорошо, так как белка переведет его в " dt_edited = NOW () =?»
Показать ещё 2 комментария
Теги:
go

1 ответ

0

Я предполагаю, что вы используете этот пакет 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()")
  • 0
    это не будет работать, так как для SET Белки требуется 2 параметра, они должны быть установлены ("string", interface {}). Я пытался передать интерфейс с nil или просто ноль, но это не сработало. Это переводится в запрос как dt_edited=NOW() = ?

Ещё вопросы

Сообщество Overcoder
Наверх
Меню