questdb批量更新转换成实际执行的sql语句会存在数据类型不一致:inconvertible types: STRI 返回

SqlSugar 处理完成
2 235

/// <summary>

/// 批量修改实体(速度快)

/// </summary>

/// <param name="UpdateObjs"></param>

/// <returns></returns>

public async Task<bool> Update(List<TEntity> UpdateObjs)

{

    return await _db.Updateable(UpdateObjs).ExecuteCommandHasChangeAsync();

}

C#字段定义代码:

[SugarColumn(DecimalDigits = 3, IsNullable = true)]

public decimal PerRatio { get; set; }   

questdb字段创建表对应字段:

image.png


Updateable自动转换出来实际执行的sql:

UPDATE "users" SET  "CREATETIME"='2025-01-15 21:50:44.713', "MODIFYID"=12, "MODIFYBY"='blogadmin', "MODIFYTIME"='2025-01-16 10:00:04.253', "ISDELETED"=false, "PERIODDATE"='2025-01-15 00:00:00.000', "PERIODNUM"='20250115010', "GUID"='4400080933630246912', "UID"=7, "ULOGINNAME"='hy1', "IP"='127.0.0.1', "PERRATIO"='0.001' WHERE  "ID"=4400080944719986689;


会报错:inconvertible types: STRING -> DOUBLE [from=, to=perratio] 因为PERRATIO为:double类型

Updateable自动转换出来'0.001' 要改成0.001为才正确,如:

UPDATE "users" SET  "CREATETIME"='2025-01-15 21:50:44.713', "MODIFYID"=12, "MODIFYBY"='blogadmin', "MODIFYTIME"='2025-01-16 10:00:04.253', "ISDELETED"=false, "PERIODDATE"='2025-01-15 00:00:00.000', "PERIODNUM"='20250115010', "GUID"='4400080933630246912', "UID"=7, "ULOGINNAME"='hy1', "IP"='127.0.0.1', "PERRATIO"=0.001 WHERE  "ID"=4400080944719986689;

热忱回答2

  • fate sta fate sta VIP0
    2025/1/16

    用例发全

    0 回复
  • fate sta fate sta VIP0
    2025/1/16

    SqlSugarCore 5.1.4.176-preview01


    已修复 ,不升级或者用double

    0 回复