SqlServer 解决 不允许从数据类型varbinary到datetime2
SqlServer 解决 不允许从数据类型varbinary到datetime2
·
避免真实项目数据直接模拟说明,一样。
假设表:t_user
有一个字段:modify_time,类型:datetime2
然后用户需求是允许对已产生的字段设置成为空,比如:modify_time='2022-02-02 00:00:00 0000..00'
update t_user set modify_time=null;
很简单的需求用SQL执行也没问题,但是用mybatis执行时直接报异常:
不允许从数据类型varbinary到datetime2........
mybatis的实现代码:
update t_user set modify_time=#{modifyTime};
这样是不行的,直接报错
然后尝试把#改成使用$:
update t_user set modify_time=¥{modifyTime};
也是不行的,直接报错
最后只能直接使用原生的SQL拼接到xml中,同时还要兼容有值的处理:
update t_user set
<if test='modifyTime == null'>
modify_time=null
</if>
<if test='modifyTime != null'>
modify_time=#{modifyTime};
</if>

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐
所有评论(0)