MT#22477 correct init_time, start_time and end_time

the way we create these output timestamps with fractional
seconds is wrong, because FROM_UNIXTIME is not truncating
its argument to int, but its rounds up/down.

"CONCAT(FROM_UNIXTIME(accounting.cdr.start_time +
accounting.cdr.duration), \".
\", SUBSTRING_INDEX(accounting.cdr.start_time +
accounting.cdr.duration, \".\",
 -1))"

correct values are:
 start: 2016-09-06 06:58:27.586
+duration: 0.520
 end: 2016-09-06 06:58:28.120

so all of init_time, start_time, end_time are wrongn. fix
means an explicit int cast via FLOOR:

"CONCAT(FROM_UNIXTIME(FLOOR(accounting.cdr.start_time +
 accounting.cdr.duration)), \".
\", SUBSTRING_INDEX(accounting.cdr.start_time +
accounting.cdr.duration, \".\",
 -1))"

Change-Id: If6afaed4b1a573b36d0151c0d39eea05ba14b9ba
changes/33/8133/2
Rene Krenn 10 years ago
parent 08f68c829b
commit 581f8b14d1

@ -47,9 +47,9 @@
X_cdr_id_map.SOURCE_SUBSCRIBER_ID = "source_voip_subscribers.id";
X_cdr_id_map.DESTINATION_SUBSCRIBER_ID = "destination_voip_subscribers.id";
X_cdr_id_map.INIT_TIME = "CONCAT(FROM_UNIXTIME(accounting.cdr.init_time), \".\", SUBSTRING_INDEX(accounting.cdr.init_time, \".\", -1))";
X_cdr_id_map.START_TIME = "CONCAT(FROM_UNIXTIME(accounting.cdr.start_time), \".\", SUBSTRING_INDEX(accounting.cdr.start_time, \".\", -1))";
X_cdr_id_map.END_TIME = "CONCAT(FROM_UNIXTIME(accounting.cdr.start_time + accounting.cdr.duration), \".\", SUBSTRING_INDEX(accounting.cdr.start_time + accounting.cdr.duration, \".\", -1))";
X_cdr_id_map.INIT_TIME = "CONCAT(FROM_UNIXTIME(FLOOR(accounting.cdr.init_time)), \".\", SUBSTRING_INDEX(accounting.cdr.init_time, \".\", -1))";
X_cdr_id_map.START_TIME = "CONCAT(FROM_UNIXTIME(FLOOR(accounting.cdr.start_time)), \".\", SUBSTRING_INDEX(accounting.cdr.start_time, \".\", -1))";
X_cdr_id_map.END_TIME = "CONCAT(FROM_UNIXTIME(FLOOR(accounting.cdr.start_time + accounting.cdr.duration)), \".\", SUBSTRING_INDEX(accounting.cdr.start_time + accounting.cdr.duration, \".\", -1))";
X_cdr_id_map.SOURCE_CARRIER_ZONE = "COALESCE(source_carrier_bbz.zone, \"onnet\")";
X_cdr_id_map.SOURCE_CARRIER_DETAIL = "COALESCE(source_carrier_bbz.detail, \"platform internal\")";
X_cdr_id_map.SOURCE_CUSTOMER_ZONE = "source_customer_bbz.zone";

Loading…
Cancel
Save