update语句除数后保存为零如何解决
当前位置:点晴教程→知识管理交流
→『 技术文档交流 』
![]() ![]() 你这条SQL语句的执行结果为0,原因很可能是因为数据类型和计算顺序的问题。具体分析如下: 你的SQL片段是: sql update scm_take_stock_order_report set take_stock_width = " + take_stock_width + "/1000 这里 take_stock_width=80,这样语句实际变成: sql update scm_take_stock_order_report set take_stock_width = 80/1000 在SQL中,除法运算的结果类型依赖于操作数的数据类型。如果 take_stock_width 列的数据类型是整数类型(比如INT),那么 80/1000 会被当作整数除法处理,结果为0(因为80除以1000的整数部分是0),存入字段中就变成0。 解决方法: 确保除法运算是浮点数运算,可以把除数或被除数转成小数,如 80/1000.0 或 CAST(80 AS DECIMAL)/1000。 或者修改字段类型为能存储小数的类型,如 DECIMAL、FLOAT等。 举个例子,修改语句如下: sql update scm_take_stock_order_report set take_stock_width = 80 / 1000.0 或者 sql update scm_take_stock_order_report set take_stock_width = CAST(80 AS DECIMAL) / 1000 这样,结果会是0.08,而不是0。 该文章在 2025/6/28 14:32:11 编辑过 |
关键字查询
相关文章
正在查询... |