mybatis 字符串转时间类型

有时候前端传过来的时间是字符串类型的,如果直接使用,会报错。
如在XML里这样使用:select * from table where create_time >= #{startTime},其中startTime为前端传过来的时间。
在运行时会报错:

              ERROR: operator does not exist: timestamp without time zone > character varying

解决办法:使用时间转换函数奖字符串转为时间类型:

to_date(#{startTime},'YYYY-MM-DD HH24:MI:SS')
上面是sql就可以写为:
select * from table where create_time >= to_date(#{startTime},'YYYY-MM-DD HH24:MI:SS') 这样就不会报错了

需要注意的是:上面的时间格式为:'YYYY-MM-DD HH24:MI:SS' ,HH24代表使用24小时,如果不加24,就代表使用12小时制,这个时候如果传过来startTime 的值为‘2019-06-15 00:00:00’,
这个时候也会报错:org.postgresql.util.PSQLException: ERROR: hour "0" is invalid for the 12-hour clock

另外不像java的时间格式可以写为 ‘YYYY-MM-dd HH:mm:SS’,mybatis的xml如果写为这样也会报错:
  Cause: org.postgresql.util.PSQLException: ERROR: conflicting values for "MM" field in formatting string

所以记得最好写成: 'YYYY-MM-DD HH24:MI:SS'

end

转载于:https://www.cnblogs.com/yilaguan9527/p/11026835.html

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值