在C ++中获取DATETIME标记的最简单方法

时间:2012-10-25 23:20:07

标签: c++ sql datetime

我有一个带有DATETIME字段的SQL表。我正在使用C ++中的表。当我填写行时,我需要提交一个日期时间。得到这个最简单的方法是什么?

使用ubuntu并且还需要它与Qt一起工作,所以如果不添加像boost ::。

这样的外部库就更好了。

1 个答案:

答案 0 :(得分:1)

我曾经遇到类似情况,所以我写了自己的DateTime课程。

关于pastebin:

DateTime.h

DateTime.cpp


如果您使用的是MySQL Connector/C++,那么我相信这个库会尝试从Java模拟JDBC。 Java中java.sql包中的类在C ++中的sql命名空间中定义。

JDBC有一个java.sql.Timestamp类,因此C ++库应该有一个sql::Timestamp类。

但是,MySQL 5.6文档显示,feature requests for MySQL Connector/C++可以DateTimeTimestampJDBC类型从std::string添加到C ++图书馆。所以他们可能还没有。

目前,the answers to this question建议您使用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++个对象是微不足道的。


如果您不太深入{{1}},可以考虑切换到MySQL++。这个库肯定有DateTime类型。