我有一个带有 DATETIME 字段的 SQL 表。我正在使用 C++ 中的表。当我填写该行时,我需要提交一个日期时间。得到这个的最简单的方法是什么?
使用 ubuntu 并且需要它也可以与 Qt 一起使用,所以最好不要添加像 boost:: 这样的外部库。
我曾经遇到过类似的情况,所以我写了自己的DateTime课。
在 pastebin 上:
如果您正在使用MySQL Connector/C++,那么我相信这个库会尝试JDBC从 Java 中进行模拟。java.sqlJava 包中的类sql在 C++ 的命名空间中定义。
JDBC 有一个java.sql.Timestamp类,所以 C++ 库应该有一个sql::Timestamp类。
但是,MySQL 5.6 文档显示MySQL 连接器/C++ 有功能请求,要求他们将Date,Time和Timestamp类型添加JDBC到 C++ 库中。所以它们可能还不可用。
目前,这个问题的答案建议您应该使用它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在你的程序中操作这些 s。使用这些对象使用我附加的类std::string创建对象将是微不足道的。DateTimepastebin
如果你不是太深入MySQL Connector/C++,你可以考虑切换到MySQL++。这个库肯定有一个DateTime类型。