根据时间分表细节优化建议 返回

SqlSugar
14 262

当根据时间字段分表时,赋值Convert.ToDateTime(DateTime.Now)   才能正常生成,当直接赋值为DateTime.Now  会导入插入失败,原因是因为 没有转换生成的sql语句的日期格式 2021-11-15T11:23:09.6196025+08:00  导致mysql插入失败  看看底层是否可以对 日期统一做个转换

热忱回答14

  • fate sta fate sta VIP0
    2021/11/15

    提供具体用例

    0 回复
  • fate sta fate sta VIP0
    2021/11/15

    Convert.ToDateTime(DateTime.Now)   和 DateTime.Now 不一样的吗

    0 回复
  • cavalier cavalier VIP0
    2021/11/15

    你官方的案例 你把赋值那块改一下   

    var data = new SplitTestTable()
    {
          CreateTime=DateTime.Now,
          Name="jack"
     };


    mysql 就会创建表  插入数据都失败,但是不会报错 还返回雪花id    

    var data = new SplitTestTable()
    {
          CreateTime=Convert.ToDateTime(DateTime.Now),
          Name="jack"
     };

    这样就正常了


    0 回复
  • fate sta fate sta VIP0
    2021/11/15

    @cavalier:这个就比较难重现了,如果能提供一个外网 表比较好重现,本地用例都OK

    0 回复
  • fate sta fate sta VIP0
    2021/11/15

    -

    0 回复
  • fate sta fate sta VIP0
    2021/11/15

    你改一下源码 ,把这个加个convert试试,除了这个代码没看出其他可疑的

    0 回复
  • fate sta fate sta VIP0
    2021/11/15

    最好可以提供一个外网的数据库表

    0 回复
  • fate sta fate sta VIP0
    2021/11/15

    你说的 不会报错 还返回雪花id  ,那肯定是成功了, AOP可以查看SQL ,执行成功不报错肯定是OK的


    image.png

    0 回复
  • fate sta fate sta VIP0
    2021/11/15

    目前发现了 自动分表在异步下有BUG,和你说的时间没关系

    0 回复
  • fate sta fate sta VIP0
    2021/11/15

    你看一下是不是我说的异步问题,是的话我在发布一个 预览版本

    0 回复
  • cavalier cavalier VIP0
    2021/11/15

    是的 我用的是异步    你推个nuget 我试试

    0 回复
  • cavalier cavalier VIP0
    2021/11/15

      改成同步方法 正常了,上午 我可能 是改完日期类型后,第一次成功了,所以以为是日期的问题   ,  异步方法第一次会成功  后面就插入不了 也不报错

    0 回复
  • fate sta fate sta VIP0
    2021/11/16

    @cavalier:5.0.4.3 更新试试

    0 回复
  • cavalier cavalier VIP0
    2021/11/16

    可以了 一早就更新了  期待分库

    0 回复