c++ - 在 C++ 中获取 DATETIME 戳的最简单方法

标签 c++ sql datetime

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

使用 ubuntu 并需要它与 Qt 一起工作,所以最好不要添加外部库,如 boost::。

最佳答案

我曾经遇到过类似的情况,所以我自己写了一个DateTime类。

在 pastebin 上:

DateTime.h

DateTime.cpp


如果您使用 MySQL Connector/C++ , 那么我相信这个图书馆试图模仿 JDBC来自 java 。 Java 中 java.sql 包中的类定义在 C++ 中的 sql 命名空间中。

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

然而,MySQL 5.6 文档显示有 feature requests for MySQL Connector/C++让他们将 JDBC 中的 DateTimeTimestamp 类型添加到 C++ 库中。所以它们可能还不可用。

目前,the answers to this question建议您应该使用 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类型。

关于c++ - 在 C++ 中获取 DATETIME 戳的最简单方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13078756/

相关文章:

java - 选择行时启用 Jbutton

java - 如何在 Scala 或 Java 中将纪元时间增加 5 分钟

c++ - 链接到多个项目时的全局数据的多个实例

java - 如何使用 native 代码以编程方式查找 Java 局部变量的内存地址?

mysql - TRUNCATE 所有匹配名称模式的表

php-Mysql 多列搜索

c# - 如何计算一组日期之间的间隔?

python - 修复某些行中日期和月份互换的日期字符串

c++ - 如何在 C++ 中创建沙箱环境?

c++ - 有没有办法从 C++ 中区分文件?