如何在Qt C++中使用QSqlQuery获取QDateTime中的毫秒数? [英] How do I get milliseconds in a QDateTime with QSqlQuery in Qt C++?

查看:17
本文介绍了如何在Qt C++中使用QSqlQuery获取QDateTime中的毫秒数?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有以下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 C++中使用QSqlQuery获取QDateTime中的毫秒数?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆