我有一个带有 DATETIME 字段的 SQL 表。我正在使用 C++ 中的表。当我填写该行时,我需要提交一个日期时间。得到这个的最简单的方法是什么?
使用 ubuntu 并且需要它也可以与 Qt 一起使用,所以最好不要添加像 boost:: 这样的外部库。
我曾经遇到过类似的情况,所以我写了自己的DateTime
课。
在 pastebin 上:
如果您正在使用MySQL Connector/C++
,那么我相信这个库会尝试JDBC
从 Java 中进行模拟。java.sql
Java 包中的类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
创建对象将是微不足道的。DateTime
pastebin
如果你不是太深入MySQL Connector/C++
,你可以考虑切换到MySQL++
。这个库肯定有一个DateTime
类型。