【时间的比较】

mysql中时间的比较方法

在mysql对数据的搜索中一定遇到过对时间的搜索。使用较多的有 <,>,<=,>=,between and。在搜索的过程中我们可以发现,对于在日期类型为DATE,DATETIME,TIMESTAMP,TIME的字符串进行比较的时候,我们比较的字符串无论是:

SELECT * from customer WHERE create_time < ‘2022-02-13’;
SELECT * from customer WHERE create_time < ‘2022#02#13’;
SELECT * from customer WHERE create_time < ‘20220213’;

都可以搜索出同样的数据结果。这是因为对这些类型进行比较的时候对字符串的格式要求不严格,比较的字符串可以选择任何格式的分割符进行比较。

获取当前时间

在进行比较的时候有时候会有种业务场景是要求获取当前时间,常用的有三类:

  1. 获取当前时间(日期+时间)

SELECT now();
SELECT sysdate();
SELECT CURRENT_TIMESTAMP();
前两函数获取的时间是datetime类型,而后一种获取的是时间戳。

  1. 获取当前日期(日期)

SELECT CURRENT_DATE();
获取的类型是date

  1. 获取当前时间(时间)

SELECT CURRENT_TIME();
获取的时间类型是time

Java中时间的比较方法

在Java中时间的比较方式就更多了,除了前面讲的mysql中的方法也是适用外还有mybatis提供的gt、ge、lt、le和Date()自带的after()、before()还有String提供的compareTo()都可由用于时间的比较。

gt、ge、lt、le

方法作用
gt大于>
ge大于等于>
lt小于<
le小于等于<=

这些方法不仅仅只是用于时间的比较,他们还可以用于数量大小的比较。

after()和before()

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String beginTime="2022-07-09 10:22:22";
String endTime="2022-07-31 11:22:22";
Date beginDate=sdf.parse(beginTime);
Date endDate=sdf.parse(endTime);
System.out.println(beginDate.before(endDate));
System.out.println(beginDate.after(endDate));

在这里插入图片描述

compareTo()

            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            String beginTime="2022-07-09 10:22:22";
            String endTime="2022-07-31 11:22:22";
            Integer i=beginTime.compareTo(endTime);
            System.out.println(i);

beginTime比endTime小时会返回负数,相反就返回正数,相等返回0。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值