Mysql之日期查询-最全SQL总结

  1. 查询当前日期
SELECT CURRENT_DATE();
SELECT CURDATE();
  1. 查询当前日期和时间
SELECT NOW();
  1. 查询今天的数据
SELECT * FROM `表名` WHERE TO_DAYS(NOW()) = TO_DAYS(`字段`);
SELECT * FROM `表名` WHERE TO_DAYS(NOW()) - TO_DAYS(`字段`) = 0;
  1. 查询昨天的数据
SELECT * FROM ``表名`` WHERE TO_DAYS(`字段`) = TO_DAYS(NOW()) -1;
SELECT * FROM ``表名`` WHERE TO_DAYS(`字段`) - TO_DAYS(NOW()) = -1;
SELECT * FROM ``表名`` WHERE TO_DAYS(NOW()) = TO_DAYS(`字段`) +1;
SELECT * FROM ``表名`` WHERE TO_DAYS(NOW()) - TO_DAYS(`字段`) = 1;
  1. 查询最近七天的数据
SELECT * FROM `表名` WHERE DATE_SUB(CURDATE(),INTERVAL 7 DAY) <= DATE(`字段`);
  1. 查询最近三十天的数据
SELECT * FROM table WHERE DATE_SUB(CURDATE(),INTERVAL 30 DAY) <= DATE(`字段`);
  1. 查询本周的数据
SELECT * FROM `表名` WHERE YEARWEEK(date_format(`字段`,'%Y-%m-%d')) = YEARWEEK(CURDATE());
SELECT * FROM `表名` WHERE YEARWEEK(date_format(`字段`,'%Y-%m-%d')) - YEARWEEK(CURDATE())  = 0;
SELECT * FROM `表名` WHERE YEARWEEK(DATE_FORMAT(`字段`,'%Y-%m-%d')) = YEARWEEK(DATE_FORMAT(CURDATE(),'%Y-%m-%d'));
SELECT * FROM `表名` WHERE YEARWEEK(DATE_FORMAT(`字段`,'%Y-%m-%d')) - YEARWEEK(DATE_FORMAT(CURDATE(),'%Y-%m-%d')) = 0;
  1. 查询上周的数据
SELECT * FROM `表名` WHERE YEARWEEK(DATE_FORMAT(`字段`,'%Y-%m-%d')) = YEARWEEK(DATE_FORMAT(CURDATE(),'%Y-%m-%d')) - 1;
SELECT * FROM `表名` WHERE YEARWEEK(DATE_FORMAT(`字段`,'%Y-%m-%d')) - YEARWEEK(DATE_FORMAT(CURDATE(),'%Y-%m-%d')) = -1;
SELECT * FROM `表名` WHERE YEARWEEK(DATE_FORMAT(`字段`,'%Y-%m-%d')) = YEARWEEK(CURDATE()) - 1;
SELECT * FROM `表名` WHERE YEARWEEK(DATE_FORMAT(`字段`,'%Y-%m-%d')) - YEARWEEK(CURDATE()) = -1;
  1. 查询当月的数据
SELECT * FROM `表名` WHERE DATE_FORMAT(`字段`,'%Y-%m') =  DATE_FORMAT(CURDATE(),'%Y-%m');
SELECT * FROM `表名` WHERE MONTH(`字段`) - MONTH(NOW()) = 0;
SELECT * FROM `表名` WHERE MONTH(`字段`) = MONTH(NOW());
  1. 查询上月的数据
SELECT * FROM `表名` WHERE DATE_FORMAT(`字段`,'%Y-%m') =  DATE_FORMAT(DATE_SUB(NOW(),INTERVAL 1 MONTH),'%Y-%m');
  1. 查询本季度的数据
SELECT * FROM `表名` WHERE QUARTER(`字段`) = QUARTER(NOW()) AND YEAR(`字段`) =  YEAR(NOW());
  1. 查询上季度的数据
SELECT * FROM `表名` WHERE QUARTER(`字段`) = QUARTER(DATE_SUB(NOW(),INTERVAL 1 QUARTER)) AND YEAR(`字段`) =  YEAR(NOW());
  1. 查询上半年(六个月)的数据
SELECT * FROM `表名` WHERE `字段` BETWEEN DATE_SUB(NOW(),INTERVAL 6 MONTH) AND NOW();
  1. 查询今年的数据
SELECT * FROM `表名` WHERE DATE_FORMAT(`字段`,'%Y') = DATE_FORMAT(NOW(),'%Y');
SELECT * FROM `表名` WHERE DATE_FORMAT(`字段`,'%Y') - DATE_FORMAT(NOW(),'%Y') = 0;
SELECT * FROM `表名` WHERE  YEAR(NOW()) = YEAR(`字段`);
SELECT * FROM `表名` WHERE  YEAR(NOW()) - YEAR(`字段`) =0;
  1. 查询去年的数据
SELECT * FROM `表名` WHERE DATE_FORMAT(`字段`,'%Y') - DATE_FORMAT(NOW(),'%Y') = -1;
SELECT * FROM `表名` WHERE  YEAR(NOW()) = YEAR(`字段`) + 1;
SELECT * FROM `表名` WHERE  YEAR(NOW()) - YEAR(`字段`) = 1;
  • 3
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
### 回答1: 在 MySQL 中,你可以使用 DATE_SUB 函数来减去日期中的天数。以下是一个示例查询,将日期字段减去一天: ``` SELECT DATE_SUB(date_column, INTERVAL 1 DAY) FROM your_table; ``` 在上面的查询中,将 `date_column` 替换为你要减去一天的日期字段名称,`your_table` 替换为你的表名称。该查询将返回一个新的日期,该日期减去了一天。 ### 回答2: 在MySQL中,可以使用DATE_SUB函数来减少日期。DATE_SUB函数可以用于从指定日期日期时间值中减去一个时间间隔。下面是一个示例: 假设我们有一个名为'orders'的表,其中包含一个日期列'order_date',我们想要查询昨天的订单。 SQL查询可以如下所示: SELECT * FROM orders WHERE order_date = DATE_SUB(CURDATE(), INTERVAL 1 DAY); 在这个查询中,我们使用了CURDATE函数来获取当前日期,然后使用DATE_SUB函数从当前日期中减去1天。然后,我们将这个减去1天的日期与'order_date'列进行比较,以获取昨天的订单。 值得注意的是,日期和时间在MySQL中都以标准的YYYY-MM-DD HH:MM:SS格式存储。通过使用DATE_SUB函数,我们可以在查询中很容易地对日期进行加减操作,以满足我们的需求。 ### 回答3: 要在MySQL中对日期进行减少一天的查询,可以使用日期函数DATE_SUB()。 DATE_SUB()函数用于从指定的日期中减去一定的时间间隔。 示例: 假设有一个名为orders的表,其中有一个列名为order_date存储订单日期。 要查询日期减少一天后的结果,可以使用以下的SQL语句: SELECT DATE_SUB(order_date, INTERVAL 1 DAY) FROM orders; 这个查询将返回order_date列中日期减少一天的结果。 也可以使用DATE_SUB()函数结合UPDATE语句,来更新表中的日期数据,并将日期减少一天: UPDATE orders SET order_date = DATE_SUB(order_date, INTERVAL 1 DAY); 注意,这个更新语句会修改表中所有的日期数据,使其减少一天。 总结: 要在MySQL中进行日期减少一天的查询,可以使用DATE_SUB()函数,并指定要减去的时间间隔。此外,还可以使用UPDATE语句和DATE_SUB()函数来更新表中的日期数据。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值