Поясните в чем проблема, тип данных поля decimal (10.6)
Запрос возвращает следующие значения, но вот в бд заносится с округлением
SET @turnover_usd_rate:=0.00011;
# Recalculate turnover USD
SET @turnover_usd:=0;
INSERT INTO `FB_revenue_report` (`date`, `product_id`, `turnover_usd`)
SELECT NOW(), `product_id`, @turnover_usd:=(`turnover` * @turnover_usd_rate) AS `turnover_usd`
FROM `FB_revenue_report` WHERE `date` = DATE(NOW())
GROUP BY `product_id`
ON DUPLICATE KEY UPDATE `turnover_usd` = @turnover_usd
2019-06-19 08:42:10 22401220000024759 12.617
2019-06-19 08:42:10 22401220000026139 0.055
2019-06-19 08:42:10 22401220000026620 228.492
2019-06-19 08:42:10 22401220000026622 5.071
2019-06-19 08:42:10 22401220000026623 0.231
БД
228.000
5.000
0.000
13.000
0.000
Решил проблему добавив кастинг к переменной при инсерте дублирующей записи
Было ON DUPLICATE KEY UPDATEturnover_usd= @turnover_usd
Изменил на ON DUPLICATE KEY UPDATEturnover_usd= CAST(@turnover_usd AS DECIMAL(10, 3))
Продвижение своими сайтами как стратегия роста и независимости