C++将修改后的MySQL时间戳存储为字符串



我目前正试图从MySQL数据库中获取一个DATETIME键值,并将其保存为字符串。

然而,我不希望时间是通常的MySQL格式YYYY-MM-DD HH:MM:SS,而是像这样的12小时格式:HH:MM:SS AM/PM

我已经找到了如何使用以下方法将MySQL数据库中的时间格式"转换"为我想要的格式:

sql::ResultSet* time = database->Query("SELECT DATE_FORMAT(`lastLogin`, '%r') FROM `users` WHERE `user_id`='%i', id);

MySQL命令是有效的,Query返回正确的时间格式(我直接在MySQL中测试了它)。

现在我想将结果存储在char*数组中,但由于某种原因,当我试图将结果复制到数组中时,他总是会出现SQL无效命令异常。

time->first();
char* lastLogin = new char[50];
//here are the variants of the commands I tried, every one crashed:
strcpy(lastLogin, time->getString("lastLogin").c_str());
strcpy(lastLogin, time->getString("DATE_FORMAT(`lastLogin`, '%r')").c_str());
strcpy(lastLogin, time->getString("DATE_FORMAT(lastLogin, '%r')").c_str());
strcpy(lastLogin, time->getString(0).c_str());

有人知道我做错了什么吗?或者这在MySQL连接器C++中是可能的吗?

尝试在SQL中命名表达式,给它一个别名:

"SELECT DATE_FORMAT(`lastLogin`, '%r') as last_login_str FROM `users` WHERE `user_id`='%i'"

然后使用"last_login_str"检索该值。

相关内容

  • 没有找到相关文章

最新更新