Как вставить строку datetime в MySQL с помощью C ++

0

У меня есть поле datetime в следующем формате:   

string date = "Jun 23 19:47:15 +0000 2010";
how do I insert it ito datetime field in mysql table? I am assuming I have to convert the date into unix timestamp before I insert it into the table.
  • 0
    На самом деле, вам, возможно, придется преобразовать дату в формат MySQL. Вы также можете просто сохранить дату в виде строки.
  • 0
    Я попробовал ваше предложение, но оно просто сохраняет дату по умолчанию "0000-00-00 00:00:00". мое поле pub_date имеет дату и время. Кажется, мне нужно преобразовать строковую дату в формат mysql. Как мне сделать это в C ++? Кроме того, есть ли класс, который будет форматировать дату от EST до GMT / UTC?
Теги:
datetime
utc

2 ответа

1
Лучший ответ

Во-первых, у вас есть атака sql-injection, ожидающая своего появления. Надо было сказать.

Хорошо, эта огромная проблема отброшена, вы можете либо преобразовать дату в формат MySQL (например, временную метку UTC, а затем снова преобразовать с помощью FROM_UNIXTIME()) или сообщить MySQL, как ее преобразовать, используя STR_TO_DATE(). Оба документа описаны в руководстве по MySQL в разделе "Функции даты и времени".

0

Вы создаете инструкцию SQL для этого, а затем вызываете SQL API, чтобы сообщить SQL-серверу выполнить ваш оператор.

  • 0
    Я перефразирую свой вопрос. У меня есть строка datetime, как указано выше, и у меня есть таблица mysql с именем records. Я хочу вставить это время в записи. Для arguendo, записи имеют два поля int (id) и datetime (pub_date). Теперь вставка данных обычно выполняется с помощью оператора sql, например: <pre> <code> string sql = "вставка в записи (id, pub_date) значений (" + id + ", '" + datetime + "'"; </ pre> </ code> Теперь проблема в том, что дата и время не в правильном формате. Я предполагаю, что строка datetime должна быть преобразована в метку времени unix, прежде чем я вставлю дату в свою таблицу. Если это так, как мне это сделать?

Ещё вопросы

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