gpt4 book ai didi

qt - 如何在 Qt C++ 中使用 QSqlQuery 在 QDateTime 中获取毫秒数?

转载 作者:行者123 更新时间:2023-12-05 05:28:42 31 4
gpt4 key购买 nike

我有这个 sql 查询:

SELECT LOG_TIME FROM PCY_LOG_EVENTS;

这将以“DD-MMM-YY HH.MM.SS.MS”格式返回数据,如下所示:

30-OCT-11 09.00.57.638000000 AM

在我的 Qt 代码中,我有这个:

QSqlQuery query("SELECT LOG_TIME from PCY_LOG_EVENTS", db);

while(query.next()) {
//Displays a QMessageBox with the millisecond part of the QDateTime
this->messageBox(QString::number(query.value(0).toDateTime().time().msec()));
}

我得到的所有毫秒值都是 0。是否有不存储毫秒值的原因?我如何获得毫秒值?

最佳答案

获取查询值作为 QString

QString dateTimeString = query.value(0).toString();

然后使用QDateTime 的静态fromString 函数。您必须指定字符串的格式。我假设一个月中的几天有一个前导零

QDateTime dateTime = QDateTime::fromString(dateTimeString, "dd-MMM-yy hh.mm.ss.zzz000000 A")

注意毫秒部分:zzz000000。由于最大值可以是 999,因此您的示例的尾随零没有意义。因此,通过使用 zzz 后跟零,您可以获得存储在字符串中的毫秒数。唯一可能的问题是您的月份部分使用大写字母,而 MMM 返回的月份缩写仅首字母大写。我希望它不会有问题。

完成转换后,您可以轻松获得毫秒数:

int ms = dateTime.time().msec();

更多格式选项 here

关于qt - 如何在 Qt C++ 中使用 QSqlQuery 在 QDateTime 中获取毫秒数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8229658/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com