如何在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++?
