aboutsummaryrefslogtreecommitdiff
path: root/odb/boost/date-time/mysql/posix-time-traits.hxx
diff options
context:
space:
mode:
Diffstat (limited to 'odb/boost/date-time/mysql/posix-time-traits.hxx')
-rw-r--r--odb/boost/date-time/mysql/posix-time-traits.hxx5
1 files changed, 4 insertions, 1 deletions
diff --git a/odb/boost/date-time/mysql/posix-time-traits.hxx b/odb/boost/date-time/mysql/posix-time-traits.hxx
index 2f40445..9750d12 100644
--- a/odb/boost/date-time/mysql/posix-time-traits.hxx
+++ b/odb/boost/date-time/mysql/posix-time-traits.hxx
@@ -210,7 +210,10 @@ namespace odb
i.minute = std::abs (v.minutes ());
i.second = std::abs (v.seconds ());
- unsigned long long ms (std::abs (v.fractional_seconds ()));
+ // Some compilers, e.g., VC8, don't have 64-bit abs() overload.
+ //
+ time_duration::fractional_seconds_type sms (v.fractional_seconds ());
+ unsigned long long ms (sms >= 0 ? sms : -sms);
ms = ms * 1000000ULL / time_duration::ticks_per_second ();
i.second_part = static_cast<unsigned long> (ms);
}