我目前正在尝试从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命令有效,并且查询返回正确的时间格式(我直接在MySQL中对其进行了测试)。
现在,我想将结果存储在char *数组中,但是由于某些原因,当我尝试将结果复制到数组中时,他总是因SQL Invalid Command Exception而崩溃。
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 Connector C ++甚至可能?
最佳答案
尝试在SQL中命名表达式,并为其指定别名:
"SELECT DATE_FORMAT(`lastLogin`, '%r') as last_login_str FROM `users` WHERE `user_id`='%i'"
然后使用
"last_login_str"
检索值。