Mysql时间查询 昨天、今天、上月、本月...

 

本文为 【MySQl】 关于时间的查询

 📌博主主页:一个肥鲇鱼

👉策略模式之Map+函数式接口:策略模式之Map+函数式接口

 👉感受 Lambda 之美:体验一下Lambda之美吧,优雅编程

👉Bean转换工具:Mapstruct使用教程


查询最近一分钟的所有记录

SELECT * FROM table_name WHERE date_column >= DATE_SUB(NOW(), INTERVAL 1 MINUTE);

查询最近一小时的所有记录

SELECT * FROM table_name WHERE date_column >= DATE_SUB(NOW(), INTERVAL 1 HOUR);

解释:DATE_SUB函数是MySQL中的一个日期函数,用于在指定的日期上减去一定的时间间隔,返回计算后的日期。

其语法为:DATE_SUB(date, INTERVAL value unit),其中date表示要进行计算的日期,value表示要减去的时间间隔,unit表示时间间隔的单位(如YEAR、MONTH、DAY、HOUR、MINUTE、SECOND等)。

查询昨天的SQL

SELECT * FROM table_name WHERE DATE(date_column) = DATE_SUB(CURDATE(), INTERVAL 1 DAY);

解释:这条SQL语句使用了DATE_SUB函数,它用于从当前日期中减去指定的时间间隔。在这个例子中,我们使用了INTERVAL 1 DAY,这意味着我们要从当前日期中减去1天,以查询昨天的数据。DATE函数用于将日期列的时间戳截断为日期部分,以便与DATE_SUB函数返回的日期部分进行比较。

查询今天的SQL

SELECT * FROM table_name WHERE DATE(date_column) = CURDATE();

解释:这条SQL语句使用CURDATE函数,它返回当前日期。我们使用它来查询今天的数据。DATE函数用于将日期列的时间戳截断为日期部分,以便与CURDATE函数返回的日期部分进行比较。

查询上个月的SQL

SELECT * FROM table_name WHERE DATE_FORMAT(date_column, '%Y-%m') = DATE_FORMAT(DATE_SUB(NOW(), INTERVAL 1 MONTH), '%Y-%m');

解释:这条SQL语句使用了DATE_FORMAT函数,它用于将日期列的时间戳格式化为指定的日期格式。在这个例子中,我们使用了'%Y-%m'格式,它将日期格式化为年份和月份。我们使用了DATE_SUB函数来减去1个月的时间间隔,然后将其格式化为'%Y-%m',以便与日期列的格式进行比较。

查询本月的SQL

SELECT * FROM table_name WHERE DATE_FORMAT(date_column, '%Y-%m') = DATE_FORMAT(NOW(), '%Y-%m');

解释:这条SQL语句与上个月的SQL非常相似,但是我们没有使用DATE_SUB函数来减去时间间隔,而是直接使用NOW函数获取当前日期。我们将当前日期格式化为'%Y-%m',以便与日期列的格式进行比较。

查询上年的SQL

SELECT * FROM table_name WHERE YEAR(date_column) = YEAR(DATE_SUB(NOW(), INTERVAL 1 YEAR));

解释:这条SQL语句使用了YEAR函数,它从日期列的时间戳中提取年份。我们使用DATE_SUB函数来减去1年的时间间隔,然后使用YEAR函数从结果中提取年份。我们将这个年份与日期列的年份进行比较,以查询上年的数据。

查询今年的SQL

SELECT * FROM table_name WHERE YEAR(date_column) = YEAR(NOW());

解释:这条SQL语句与上年的SQL非常相似,但是我们没有使用DATE_SUB函数来减去时间间隔,而是直接使用NOW函数获取当前日期的年份。我们将这个年份与日期列的年份进行比较,以查询今年的数据。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一个肥鲶鱼

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值