时间更新的问题 返回

1:mysql8.x数据库
2:创建时间设置为可空,且忽略更新
当CreateTime在数据库中为null时,更新数据后,CreateTime变成“1900-01-01 00:00:00” (这种情况下是错误,应该继续为null)
当CreateTime在数据库中为正常的日期时,更新数据后,CreateTime不变 (这种情况下是对的)
可能是mysql设置默认值优先级高于了IsOnlyIgnoreUpdate=true
热忱回答(15)
-
fate sta VIP0
2周前
有这个特性 正常情况下是不会更新的,提供具体代码或者DEMO
0 回复 -
fry VIP0
2周前@fate sta:CreateTime有值,确实是不会更新,但是CreateTime为null时,更新就变成"1900-01-01 00:00:00"
0 回复 -
fate sta VIP0
2周前
0 回复 -
fate sta VIP0
2周前不能重现你说的。需要DEMO
0 回复 -
fry VIP0
2周前@fate sta:你的这个写法不对,你在表里面手动加一条数据,CreateTime设置为null,然后去更新这个数据(给CreateTime赋值)
0 回复 -
fate sta VIP0
2周前看生成的SQL就知道了,如果SET没这列是不会更新的。
0 回复 -
fate sta VIP0
2周前建议你写个空DEMO自测,能重现发出来,不能重现就看你项目 和DEMO差异
0 回复 -
fry VIP0
2周前@fate sta:这个问题不大,一般CreateTime一定有值,所以更新赋值不会变,之前的脏数据CreatTime为null,导致的更新后变成"1900-01-01 00:00:00"
问题不大,暂不影响使用
0 回复 -
fry VIP0
2周前@fate sta:不好复现,需要手动添加一条数据(CreateTime为空),然后再去更新这个数据,这就是全部步骤
0 回复 -
fry VIP0
2周前@fate sta:set里面有CreateTime,有赋值
0 回复 -
fate sta VIP0
2周前@fry:你这个可能是codefirst配置了默认值引起的。以前是NULL数据,在配置默认值全部将NULL 更新了
0 回复 -
fate sta VIP0
2周前大概率不是UPDATE引起的。
0 回复 -
fry VIP0
2周前@fate sta:可空,没有默认值
0 回复 -
fry VIP0
2周前@fate sta:我再找找原因
0 回复 -
fry VIP0
1周前@fate sta:目前这个问题找不到原因,日期类型没有配置默认值,Aop也没有做特殊处理,这种目前没有啥影响,可以忽略不解决
MoreSetting里面有个设置日期最小时间是"1900-01-01",不知道是不是这个原因
0 回复