DATETIMEフィールドを含むSQLテーブルがあります。私はC++のテーブルを使用しています。行を埋めるとき、日時を送信する必要があります。これを取得する最も簡単な方法は何ですか?
ubuntuを使用し、Qtでも動作するようにする必要があるため、boost::などの外部ライブラリを追加しない方がよいでしょう。
かつて同じような状況だったので、自分でDateTime
クラスを書きました。
ペーストビンの場合:
を使用している場合、このライブラリはJavaMySQL Connector/C++
からエミュレートしようとしていると思います。JavaのパッケージJDBC
のクラスは、C++の名前空間で定義されています。java.sql
sql
JDBCにはjava.sql.Timestamp
クラスがあるため、C++ライブラリにはsql::Timestamp
クラスが必要です。
ただし、MySQL 5.6のドキュメントには、 MySQL Connector / C ++に対して、およびタイプをC++ライブラリに追加するための機能要求があることが示されています。そのため、まだ利用できない可能性があります。Date
Time
Timestamp
JDBC
今のところ、この質問への回答は、std::string
フィールドのフェッチと設定に使用する必要があることを示唆していますTimestamp
。
入れる:
std::string ts_field = "2012/10/26 07:15:00";
pstmt = con->prepareStatement("INSERT INTO date_table(date_field) VALUES (?)");
pstmt->setString(1, ts_field);
pstmt->execute();
delete pstmt;
選択する:
pstmt = con->prepareStatement("SELECT date_field FROM date_table");
res = pstmt->executeQuery();
while (res->next())
{
std::string ts_field = res->getString("date_field");
cout << ts_field << endl;
}
delete res;
delete pstmt;
Timestamp
プログラムでこれらを操作したい場合。これらのオブジェクトを使用して、アタッチしたクラスを使用してstd::string
オブジェクトを作成するのは簡単です。DateTime
pastebin
に深く関わっていない場合はMySQL Connector/C++
、に切り替えることを検討してMySQL++
ください。このライブラリには間違いなくDateTime
タイプがあります。