如何在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();
然后用静态fromString
的功能QDateTime
。 你必须指定你的字符串的格式。 我假设本月的日子有一个领先的零
QDateTime dateTime = QDateTime::fromString(dateTimeString, "dd-MMM-yy hh.mm.ss.zzz000000 A")
注意毫秒部分: zzz000000
。 由于最大值可以是999,所以你的例子的尾部零是没有意义的。 因此,通过使用zzz
后跟零,您可以获得存储在字符串中的毫秒数。 唯一可能的问题是,您的月份部分使用大写字母,而MMM
返回大写字母缩写的第一个字母。 我希望这不会有问题。
一旦你做了转换,你可以很容易地得到毫秒:
int ms = dateTime.time().msec();
这里有更多的格式化选项
链接地址: http://www.djcxy.com/p/25061.html上一篇: How do I get milliseconds in a QDateTime with QSqlQuery in Qt C++?