【问题标题】:MYSQL select data that is older then 2 yearsMYSQL 选择超过 2 年的数据
【发布时间】:2016-03-25 15:23:32
【问题描述】:

所以我想从系统中清除一些超过 2 年的数据。

我有一个存储日期时间字段。

我知道我可以做类似的事情

SELECT * FROM `table` where date_field < (??? what goes here)

我的问题是我想如何计算日期,或者我很困惑

【问题讨论】:

标签: php mysql date


【解决方案1】:

使用 DATE_SUB

SELECT * FROM `table` 
where date_field < DATE_SUB(CURDATE(), INTERVAL 2 YEAR)

【讨论】:

  • 确定 吗?
  • 他不是在寻找早于现在的日期 - 2 年吗?所以 dateField 应该小于现在 -2 以匹配正确的数据@xQbert
【解决方案2】:

如果手册不够清楚,请提供具体答案:

SELECT * FROM `table` where date_field < (now() - interval 2 year)

【讨论】:

    【解决方案3】:

    这可能会有所帮助:

    SELECT EXTRACT(YEAR FROM `date`) AS year 
    from table 
    having year< (EXTRACT(YEAR from CURDATE())-2)
    

    【讨论】:

      【解决方案4】:

      你可以使用INTERVAL:

      SELECT * FROM `table` WHERE date_field < DATE_SUB(CURDATE(),INTERVAL 2 YEAR);
      

      引用自https://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html

      【讨论】:

        【解决方案5】:

        SELECT * FROM table where date_field

        【讨论】:

        • 很简单,在 date_sub() 中使用 now() 函数
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2021-11-21
        • 1970-01-01
        • 1970-01-01
        • 2013-08-28
        • 2012-04-11
        • 2013-09-04
        • 1970-01-01
        相关资源
        最近更新 更多