MyBatis日期时间段查找

这篇博客探讨了在Java中使用@DateTimeFormat和@JsonFormat注解来规范日期时间格式的方法,包括入参和出参的格式化,以及在XML查询中的应用。即使不加@DateTimeFormat,某些情况下也能正确解析日期,但推荐使用注解确保一致性。同时展示了如何处理时间段查询,确保时间边界正确。
摘要由CSDN通过智能技术生成

定义的DTO里面有Date字段

Private Date beginDate;

 

  • 入参传入
 @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
 private Date beginDate;

Json字符串直接传入是传入不了的,要通过DateTimeFormat来约定传入的格式。这里就约定成传入的格式要为 2021-05-07 15:07:33。如果不按这个格式传入会出错。

  • 出参格式化
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date beginDate;

@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date endDate;

这样设置后,接口返回日期也会按照这个规范来返回了。

XML中按时间段查询

如果是时间段的话会再设置一个endDate也和这个一样处理即可。

这么处理之后在xml里就很简单了,只用做如下操作

<if test="beginDate != null and endDate != null">
AND createtime BETWEEN #{beginDate} AND #{endDate}
</if>

 但是现实使用中我还是用到了另外一种办法

没有加@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss"),按道理说不加这个传值传不进来,但是在我在swagger接口里传入2021-05-01 00:00:00格式的值,却成功了。

然后我的XML是这样写的

<if test="beginDate != null and endDate != null">
AND createtime BETWEEN DATE_FORMAT(#{beginDate},'%Y-%m-%d 00:00:00')
AND DATE_FORMAT(#{endDate},'%Y-%m-%d 23:59:59')
</if> 

(11条消息) @JsonFormat与@DateTimeFormat注解的使用_HeJD的博客-CSDN博客_datetimeformat注解使用

(11条消息) @DateTimeFormat 和 @JsonFormat 注解_月下泛舟的博客-CSDN博客

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值