time between #{start} and #{end}

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/mingyundezuoan/article/details/81916655

需求描述

  • 检索当天的数据
  • MyBatis
  • 实现方案:
    • time like “yyyy-MM-dd%”
    • time between “今天0点” and “明日0点”
  • 选择了后者,实现过程中通过 parameterMap = “java.util.Map” 封装参数传入,value 为String类型,Mapper.xml 中通过 #{} 或 ${} 都不正确,因为接口执行后根本无返回值
  • 最后将传参改为 java.util.Date ,查询结果正确

原因分析

  • time 在数据表中的数据类型 TimeStamp
  • 无法与字符串相互比较
  • 数据类型转换 jdbc 中 timestamp 对应 java 中 java.util.Date 数据类型,数据类型转换时无法匹配
  • 但是本地执行SQL时 timestamp like “yyyy-MM-dd” 方式可以获取结果,但程序中却不能获取结果

猜你喜欢

转载自blog.csdn.net/mingyundezuoan/article/details/81916655
今日推荐