php - laravel SQLSTATE [22007]:无效的日期时间格式:1366 不正确的十进制值:'buy_amt * 0.00097812555575316' 列 'price' 在第 1 行错误
问题描述
我正在尝试更新整个数据,但是我需要将汇率除以购买价格的保证金率,并且出现数据格式错误。
SQLSTATE [22007]:无效的日期时间格式:1366 不正确的十进制值:'buy_amt * 0.00097812555575316' 列 'prod' 在第 1 行(SQL:更新 prod 设置值 = 10,价格 = buy_amt * 0.00097812555575316)
我的代码:
DB::update("update prod set value = ?, price = ?, ",
[
$datas["value"],
"buy_amt * ".(1+($datas["value"]/100))/$datas["price"],
]);
产品表
price value datatype DECIMAL
buy_amt datatype INT
price | value | buy_amt
11 | 10 | 10
22 | 10 | 20
解决方案
这段代码
"buy_amt * ".(1+($datas["value"]/100))/$datas["price"]
将产生一个字符串,它不适合数据库中的价格字段,它是一个数字
你的意思是这个
$buy_amt * (1+($datas["value"]/100))/$datas["price"]
?
推荐阅读
- sql - 使用 NodeJS + MongoDB(或 SQL)实现搜索算法
- groovy - 当未定义其他 var 时,groovy 使用 var
- angular - 在同一页面角度中多次使用同一组件时避免多次 api 调用
- r - 有没有办法在openxlsx的write.xlsx函数中将默认覆盖改成yes?
- javascript - 如何在 JSX 中实现 forEach() - React Native for Custom Headers
- python - 如何将事务矩阵导入 Python?
- amazon-cognito - AWS Cognito - 以编程方式获取刷新令牌到期
- angular - 在 Angular 应用程序中配置 API URL
- javascript - 如何在悬停此元素时使光标跟随器与另一个 div 的位置/大小相同
- ffmpeg - ffmpeg 无法识别的选项'--enable-libopus'