如何在Qt C++中使用QSqlQuery获取QDateTime中的毫秒数? [英] How do I get milliseconds in a QDateTime with QSqlQuery in Qt C++?
本文介绍了如何在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屋!
查看全文