Я застрял в проблеме и действительно надеюсь, что вы можете мне помочь. Мне нравится преобразовать поле MySQL DATETIME
в переменную C++ std::time_t
. Моя база данных выглядит следующим образом:Преобразование MySQL Datetime в C++ std :: time_t
CREATE TABLE data(
id INTEGER AUTO_INCREMENT UNIQUE,
path VARCHAR(1000),
acquisitionDate DATETIME
);
И я пытаюсь сохранить значение из acquisitionDate
в C++ переменную типа std::time_t
.
После некоторого поиска в Интернете я узнал, что должен использовать UNIX_TIMESTAMP
в своем операторе MySQL. Однако я не понимал, как его использовать. Я могу генерировать запрос и получать sql::ResultSet
:
std::unique_ptr<sql::Statement> stmt(mConnection->createStatement());
std::string query="SELECT id, path, UNIX_TIMESTAMP(acquisitionDate) FROM data WHERE id = 1";
std::unique_ptr<sql::ResultSet> res(stmt->executeQuery(query));
Но я не понимаю, как я могу получить фактическое значение поля в std::time_t
переменной
if(res->next())
{
std::time_t acquisitionDate = res->getInt("acquisitionDate");
std::time_t acquisitionDate = res->???
}
Как-то мой мозг не получает этот последний шаг. Пожалуйста, помогите мне. Большое спасибо!
Большое спасибо за ваш ответ. Кастинг - это хорошая и простая идея. Тем не менее, я понял, что моя проблема заключается в понимании того, как получить доступ к возвращенному полю. См. Мой ответ на этот вопрос – Michael