Mybatis和Mybatis-Plus時間范圍查詢方式
一、mysql
1.傳入時間范圍參數類型是字符串
<if test="startTime!=null and startTime.trim() neq ''"> and date_format(create_time,'%Y-%m-%d %H:%i:%s') >= str_to_date(#{startTime},'%Y-%m-%d %H:%i:%s') </if> <if test="endTime!=null and endTime.trim() neq ''"> and date_format(create_time,'%Y-%m-%d %H:%i:%s') <= str_to_date(#{endTime},'%Y-%m-%d %H:%i:%s') </if>
2.傳入時間范圍參數類型是Date
<if test="startTime!=null and startTime.trim() neq ''"> and date_format(create_time,'%Y-%m-%d %H:%i:%s') >= date_format(#{startTime},'%Y-%m-%d %H:%i:%s') </if> <if test="endTime!=null and endTime.trim() neq ''"> and date_format(create_time,'%Y-%m-%d %H:%i:%s') <= date_format(#{endTime},'%Y-%m-%d %H:%i:%s') </if>
3.Mybatis-Plus時間范圍查詢
Page<Record> page = new Page<>(page, limit); IPage<Record> result = iRecordService.page(page, new LambdaQueryWrapper<Record>() .apply(StrUtil.isNotBlank(start_date), "date_format (optime,'%Y-%m-%d') >= date_format('" + start_date + "','%Y-%m-%d')") .apply(StrUtil.isNotBlank(end_date), "date_format (optime,'%Y-%m-%d') <= date_format('" + end_date + "','%Y-%m-%d')") .orderByDesc(HmsFaceDetectLog::getOptime));
Mybatis Plus 時間查詢無效
錯誤寫法
DateTimeFormatter df = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); QueryWrapper query = new QueryWrapper(); query.ge("create_time", LocalDateTime.parse("2019-05-13 23:00:00", df));
正確寫法
query.apply("UNIX_TIMESTAMP(create_time) >= UNIX_TIMESTAMP('" + "2019-05-12 03:00:00" + "')");
以上為個人經驗,希望能給大傢一個參考,也希望大傢多多支持WalkonNet。
推薦閱讀:
- Java查詢時間段(startTime–endTime)間的數據方式
- Python實現自動計算特定格式的時間差
- MySQL日期及時間字段的查詢
- UTC時間、GMT時間、本地時間、Unix時間戳的具體使用
- MySQL如何比較時間(datetime)大小