如果加入日期为六个月,则从表中删除记录

时间:2018-05-15 16:58:37

标签: php mysql

如果字段joindate是六个月或更久,我想从表中删除记录。

假设员工的约会日期是15-06-2018,并且在15-11-2018用户应该被删除

我已存储了joindate和datetime。现在尝试创建一个查询,如果当前日期等于joindate + 6个月,将删除记录。

1 个答案:

答案 0 :(得分:0)

看起来像一个非常简单的表达。

joindate < DATE(NOW()) + INTERVAL -6 MONTH

获取当前日期,从中减去6个月,然后与joindate列进行比较,以确定joindate是否更早。

我们可以在查询中测试:

SELECT t.joindate < DATE(NOW()) + INTERVAL -6 MONTH `older_than_six_months`
     , t.joindate 
     , t.id
     , ... 
  FROM mytable t
 ORDER BY t.joindate ASC

如果joindate早于六个月,表达式将返回1(true),或返回0(false)或NULL。

我们可以指定一个特定的日期值代替DATE(NOW())进行测试

SELECT t.joindate < DATE(NOW()) + INTERVAL -6 MONTH `older_than_six_months`
     , t.joindate < '2018-07-01' + INTERVAL -6 MONTH `six_months_20180701`
     , t.joindate 
     , t.id
     , ... 
  FROM mytable t
 ORDER BY t.joindate ASC

一旦我们有一个经过测试的表达式,我们就可以在DELETE语句中使用它

DELETE t.*
  FROM mytable t
 WHERE t.joindate < DATE(NOW()) + INTERVAL -6 MONTH 

(就个人而言,我会做小于或小于或等于比较测试<<=而不是等于测试。)