一:常用日期格式
1、 DATE
显示格式:yyyy-MM-dd
时间范围:[‘1000-01-01’到’9999-12-31’]
2、 DATETIME
显示格式:yyyy-MM-dd HH:mm:ss
时间范围:[ ‘1000-01-01 00:00:00’到’9999-12-31 23:59:59’]
3、TIMESTAMP
显示格式:yyyy-MM-dd HH:mm:ss
时间范围:[ ‘1970-01-01 00:00:00’到’2037-12-31 23:59:59’]
二、 MyBatis处理日期有两种的jdbcType
1、jdbcType=DATE
2、jdbcType=TIMESTAMP
三、java.util.Date类:
当我们使用java.util.Date作为实体的日期类型时(JAVA没有DateTime这个类,Date类能够同时表示日期和时间),java.util.Date实际上是能够表示MySQL的三种字段类型:
1、date
2、datetime
3、timestamp
四、MyBatis处理方式
而实际将java.util.Date当做参数传递给Mapper的时候
1、假如我们不指定jdbcType,那么这个日期会自动转化会MySQL的timestamp。
2、指定jdbcType=TIMESTAMP也是转化为MySQL的timestamp。
3、指定jdbcType=DATE,那么MyBatis会将传入参数截取为yyyy-MM-DD(Date)格式。
五、总结
使用java.util.Date作为参数传递给Mapper时,不管MySQL的日期字段类型是date、datetime或者timestamp中的哪一种,MyBatis都能够自动做出类型转换,可以直接使用 =、>、=、<=符号来进行筛选。
六、扩展:

说明:mybatis中日期格式的if判定时,如图,不能加manageTime != ’ ’ 的判断。否则会报错。
本文详细介绍了MyBatis中处理日期字段的类型,包括DATE、DATETIME和TIMESTAMP,并讨论了java.util.Date在MyBatis中的转换规则。无论MySQL字段是date、datetime还是timestamp,MyBatis都能自动转换。同时提醒,在MyBatis的日期条件判断中,不应包含日期字符串不为空的条件,否则会导致错误。
2897

被折叠的 条评论
为什么被折叠?



