aboutsummaryrefslogtreecommitdiff
path: root/odb/qt/date-time/pgsql/qtime-traits.hxx
diff options
context:
space:
mode:
authorConstantin Michael <constantin@codesynthesis.com>2011-12-04 23:30:58 +0200
committerBoris Kolpackov <boris@codesynthesis.com>2011-12-05 11:29:55 +0200
commit2c12838925dc6fbc7d45ada0ddc40871c6a5d56b (patch)
tree73cf34737fd71a87703342654adc34079ae18168 /odb/qt/date-time/pgsql/qtime-traits.hxx
parentb6e2b5a565e45f9381caa6d66439cd4ec7748b43 (diff)
Handle microsecond resolution in PostgreSQL Qt date-time mappings
Diffstat (limited to 'odb/qt/date-time/pgsql/qtime-traits.hxx')
-rw-r--r--odb/qt/date-time/pgsql/qtime-traits.hxx12
1 files changed, 9 insertions, 3 deletions
diff --git a/odb/qt/date-time/pgsql/qtime-traits.hxx b/odb/qt/date-time/pgsql/qtime-traits.hxx
index c822017..22b8326 100644
--- a/odb/qt/date-time/pgsql/qtime-traits.hxx
+++ b/odb/qt/date-time/pgsql/qtime-traits.hxx
@@ -38,8 +38,12 @@ namespace odb
//
v.setHMS (24, 0, 0);
else
- v = QTime (0, 0, 0).addSecs (
- static_cast<int> (endian_traits::ntoh (i) / 1000000));
+ {
+ const QTime base (0, 0, 0);
+
+ v = base.addMSecs (
+ static_cast<int> (endian_traits::ntoh (i) / 1000));
+ }
}
static void
@@ -50,8 +54,10 @@ namespace odb
else
{
is_null = false;
+ const QTime base (0, 0, 0);
+
i = endian_traits::hton (
- static_cast<long long> (QTime (0, 0, 0).secsTo (v)) * 1000000);
+ static_cast<long long> (base.msecsTo (v)) * 1000);
}
}
};