1

現在DATETIME、MySQLデータベースからキー値を取得して文字列として保存しようとしています。

ただし、時間を通常の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の無効なコマンド例外が発生してクラッシュします。

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 ++でも可能ですか?

4

1 に答える 1

0

SQLで式に名前を付けて、エイリアスを付けてみてください。

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

次に、を使用"last_login_str"して値を取得します。

于 2012-01-28T11:57:50.460 に答える