Java查询时间段(startTime--endTime)间的数据方式

目录
  • Java查询时间段的数据
    • 问题1
    • 问题2
  • 格式化时间startTime和endTime的时间差

Java查询时间段的数据

问题1

判断时间间隔间的数据,就像查询数字一样通过between-and方法进行?

答1:

between-and用于查询数字区间,不用于查询两个时间间隔的内容。非要查询,可以试着把时间格式转换成Long型。

问题2

在用postman工具测试后,Java中报异常:(String类型和Date类型比较出现异常)?

异常信息:

### Error querying database.  Cause: java.lang.IllegalArgumentException: invalid comparison: java.util.Date and java.lang.String
### Cause: java.lang.IllegalArgumentException: invalid comparison: java.util.Date and java.lang.String

mybatis--xml

<if test="startTime != null and startTime != ''">
   AND create_time <![CDATA[>=]]> #{startTime}
</if>

答2:

此处的String类型和Date类型比较异常原因:if标签中,Date类型不存在String类型,直接判断就好

<if test="startTime != null">
 AND create_time <![CDATA[>=]]> #{startTime}
</if>

此时上述问题解决。

补充:

完整的时间区间比较代码

<where>
   <if test="startTime != null">
       AND create_time <![CDATA[>=]]> #{startTime}
   </if>
   <if test="endTime != null">
       AND create_time <![CDATA[<=]]>#{endTime}
   </if>
</where>

实体类

//创建时间
    private Date createTime;
 
//起始时间
    private Date startTime;
 
//结束时间
    private Date endTime;

格式化时间startTime和endTime的时间差

格式化时间startTime和endTime的 时间差,当间隔超过一年时,显示年月日;

超过一天时,显示月日;

超过一小时时,显示多少小时前;

超过一分钟时,显示多少分钟前;

不超过一分钟,则显示为刚刚

/**
 * 格式化时间startTime和endTime的 时间差,用于朋友圈等地方显示发布时间。例如“45分前”等
 * @param endTime :发布时间
 * @return 格式化的时间显示字符
 */
public static String getFriendlyTime(Date startTime, Date endTime) {
    long betweenTime = (endTime.getTime() - startTime.getTime()) / 1000;
    if (betweenTime < 0) {
        return DateTimeUtils.convertDate2String(startTime, "yyyy年MM月dd日");
    }
    if (betweenTime / (60 * 60 * 24 * 365) > 0) {
        //大于1年
        return DateTimeUtils.convertDate2String(startTime, "yyyy年MM月dd日");
    }
    if (betweenTime / (60 * 60 * 24 ) > 0) {
        //大于一天
        return DateTimeUtils.convertDate2String(startTime, "MM月dd日");
    }
    if (betweenTime / (60 * 60) > 0) {
        //大于1小时
        return betweenTime / (60 * 60) + "小时前";
    }
    if (betweenTime / (60) > 0) {
        //大于一分钟
        return betweenTime / (60) + "分钟前";
    }
    //小于一分钟
    return "刚刚";
}

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • JAVA实现按时间段查询数据操作

    html / jsp <span style="vertical-align: -webkit-baseline-middle;font-size:16px;font-weight:bold;">开始时间:</span>  <input name="startTime" id="startTime" type="text" class="Wdate" onfocus="

  • 解决java字符串转换成时间Unparseable date出错的问题

    今天在写代码的时候,在将字符串转换成时间的时候,出现了这样的问题. java.text.ParseException: Unparseable date: "2017-1-1 00:00:00" DateFormat df = new SimpleDateFormat("yyyy-MM-dd"); Date start = df.parse(startTime); Date stop = df.parse(stopTime); long timeSpan = sto

  • Java8 新特性之日期时间对象及一些其他特性

    日期时间对象 关于日期时间的操作可以分为两种: 转换:与字符串的互相转换,与时间戳的互相转换 计算:计算两个时间点之间的间隔.时间点与时间段的计算(计算下周N.下个月D日.去年M月D日等等) Java8 提供了三个类:LocalDate.LocalTime.LocalDateTime,它们的形式如 2020-01-01.12:30:00.2020-01-01 12:30:00 创建对象 获取类对象的方法非常非常简单 LocalDate now = LocalDate.now(); LocalDa

  • Java查询时间段(startTime--endTime)间的数据方式

    目录 Java查询时间段的数据 问题1 问题2 格式化时间startTime和endTime的时间差 Java查询时间段的数据 问题1 判断时间间隔间的数据,就像查询数字一样通过between-and方法进行? 答1: between-and用于查询数字区间,不用于查询两个时间间隔的内容.非要查询,可以试着把时间格式转换成Long型. 问题2 在用postman工具测试后,Java中报异常:(String类型和Date类型比较出现异常)? 异常信息: ### Error querying dat

  • java读取文件内容,解析Json格式数据方式

    目录 java读取文件内容,解析Json格式数据 一.读取txt文件内容(Json格式数据) 二.解析处理Json格式数据 三.结果存入数据库 四.测试 java 读取txt文件中的json数据,进行导出 以下代码可直接运行 java读取文件内容,解析Json格式数据 一.读取txt文件内容(Json格式数据) public static String reader(String filePath) { try { File file = new File(filePath); if (file

  • java并发数据包Exchanger线程间的数据交换器

    java.util.concurrent.Exchanger可以用来进行数据交换,或者被称为“数据交换器”.两个线程可以使用Exchanger交换数据,下图用来说明Exchanger的作用 在下面的代码中 首先我们定义了一个Exchanger,用于数据交换 然后定义了两个线程对象bookExchanger1和bookExchanger2,两个线程都持有Exchanger交换器对象用于数据交换 两个线程中的每个线程都有自己的数据,比如下面代码中的String[] 书籍数组. public stat

  • Mysql 如何查询时间段交集

    Mysql 查询时间段交集 使用场景 数据库表有两个字段starttime,endtime.现在给出(a,b)的时间段,查出和(starttime,endtime)时间段有交集的数据. sql select * from TABLENAME where (starttime > a AND starttime < b) OR (starttime < a AND endtime > b) OR (endtime > a AND endtime < b) OR (star

  • java中对list分页并显示数据到页面实例代码

    有时候需要根据条件查询得出的数据较多,需要分页显示到页面上.这时点击下一页就不方便每次带查询条件在数据库中分页.可以在list中进行分页. page的model类: public class Page { private Integer currentPage;//当前页 private int pageSize;//每页显示记录条数 private int totalPage;//总页数 private List<?> dataList;//每页显示的数据 private int star;

  • Vue+java实现时间段的搜索示例

    实现效果如图: 标红的是需要注意的地方!Vue操作:1,如图: 2,如图:(数据初始化) 2.0初始化今天的日期和时间的样式: 2.1今天的日期: // 时间范围–start// daterangeLastInTime: [],// daterangeLastInTime: [new Date(2022, 2, 10, 0, 0), new Date(2022, 2, 10, 23, 59)],daterangeLastInTime: [this.parseTime(new Date(new D

  • MySql查询时间段的方法

    本文实例讲述了MySql查询时间段的方法.分享给大家供大家参考.具体方法如下: MySql查询时间段的方法未必人人都会,下面为您介绍两种MySql查询时间段的方法,供大家参考. MySql的时间字段有date.time.datetime.timestamp等,往往我们在存储数据的时候将整个时间存在一个字段中,采用datetime类型:也可能采用将日期和时间分离,即一个字段存储date,一个字段存储时间time.无论怎么存储,在实际应用中,很可能会出现包含"时间段"类型的查询,比如一个访

  • java实现两台服务器间文件复制的方法

    本文实例讲述了java实现两台服务器间文件复制的方法.分享给大家供大家参考.具体分析如下: 通常我们使用最多的文件复制功能就是同服务器之间的文件复制功能,这里介绍的是在普通文件复制上功能升级,可以实现两台服务器实现文件的复制,下面一起来看看代码. 1.服务器端 复制代码 代码如下: package sterning; import java.io.BufferedInputStream; import java.io.DataInputStream; import java.io.DataOut

  • java 查询oracle数据库所有表DatabaseMetaData的用法(详解)

    一 . 得到这个对象的实例 Connection con ; con = DriverManager.getConnection(url,userName,password); DatabaseMetaData dbmd = con.getMetaData(); 二. 方法getTables的用法 原型: ResultSet DatabaseMetaData.getTables(String catalog,String schema,String tableName,String []type

  • java多线程编程学习(线程间通信)

    一.概要 线程是操作系统中独立的个体,但这些个体如果不经过特殊的处理就不能成为一个整体,线程间的通信就是成为整体的必用方案之一.可以说,使线程进行通信后,系统之间的交互性会更强大,在大大提高cpu利用率的同时还会使程序员对各线程任务在处理过程中进行有效的把控和监督. 二.等待/通知机制 1."wait/notify"机制:等待/通知机制,wait使线程暂停运行,而notify 使暂停的线程继续运行.用一个厨师和服务员的交互来说明: (1) 服务员取到菜的时间取决于厨师,所以服务员就有&

随机推荐