MySQL数据库中进行日期比较的多种方法

在MySQL数据库中,日期比较是一种常见的操作,用于筛选出符合特定时间条件的记录。以下是几种在MySQL中进行日期比较的方法:

  1. 使用 = 操作符进行精确匹配:
    当需要匹配特定日期时,可以使用等号 =。例如:

    SELECT * FROM table_name WHERE date_column = '2023-12-02';
    ​
  2. 使用 > 和 < 操作符进行范围查询:
    若要查找某个时间点之前或之后的记录,可以使用大于 > 或小于 < 符号。例如:

    SELECT * FROM table_name WHERE date_column < '2023-12-02';
    
     -- 或者查找之后的日期
     SELECT * FROM table_name WHERE date_column > '2023-12-02';
    ​
  3. 结合使用 BETWEEN 操作符查询时间区间内数据:
    当需要选取一个时间范围内所有数据时, 可以用BETWEEN操作符, 如下所示:

SELECT * FROM table_name WHERE date_column BETWEEN '2023-01-01' AND '2023–12–31';
​
  1. 利用函数对比不同粒度级别上的日期:

    • 使用YEAR(), MONTH(), DAY()等函数提取年、月、日来对比。

      -- 查找所有在某年发生过交易记录。
      SELECT * FROM transactions WHERE YEAR(transaction_date) = 2021;
      
      -- 查找特定月份和年份组合下发生过交易记录。
      SELECT * FROM transactions 
        WHERE YEAR(transaction_date) = 2021 AND MONTH(transaction_date) = 5;
      
       -- 查找具体某天发生过交易记录。
       SELECT *
       from transactions 
       where DAY(transaction_date)=15 and MONTH(transaction_date)=5 and YEAR (transaction_Date)=2019;
      ​
       
       DATE() 函数可将datetime或timestamp字段转换为date类型以忽略具体时刻信息.
    select * from orders where DATE(order_datetime)='2019–05–15'
  2. 利用TIMESTAMPDIFF() 函数计算两个日子间隔.

    • TIMESTAMPDIFF() 可计算两个datetime值间隔多少秒、分钟、小时等.

      select *
      from events where TIMESTAMPDIFF(DAY, event_datetime, NOW()) <=7; // 查询最近一周内事件
      
      select *
      from events where TIMESTAMPDIFF(MONTH,event_datetime,NOW())<=6; // 查询最近六个月事件
      
      select*
      From events Where timestampdiff(year,event_datetime,NOW())<=2; // 查询最近两年事件
      
      Select*
      From Events Where timestampdiff(hour,event_Datetime,NOW())<=24;//查询24小时内事件
 

6 .利用CURDATE(), CURRENT_DATE 等函数获取当前日子.

7 .利用STR_TO_DATE () 函数将字符串转换为date类型.

8 .利用DATEDIFF () 计算两天差异。

posted @ 2025-09-02 21:34  w199899899  阅读(407)  评论(0)    收藏  举报