如何将30天以前的记录移动到MYSQL中的另一个表?

时间:2016-06-01 12:06:54

标签: php mysql

我有一张名为激活的表。在这里,我想将超过30天的记录移到另一张桌子。怎么做?

 SELECT * DATE_FORMAT(datetime, '%m/%d/%Y') 
 FROM 
 tablename 
 WHERE datetime <= DATE_SUB(SYSDATE(), INTERVAL 30 DAY)

我尝试了这个查询,但它返回了一个错误:

  

您的SQL语法有错误;查看与您的MySQL服务器版本相对应的手册,以便在DATE_FORMAT附近使用正确的语法(日期时间,&#39;%m /%d /%Y&#39;)FROM激活WHERE datetime&lt; = DATE_SUB( SYS&#39;在第1行

2 个答案:

答案 0 :(得分:3)

您可以尝试

INSERT INTO tablename2 select *, DATE_FORMAT(datetime, '%m/%d/%Y') from tablename1 WHERE datetime <= DATE_SUB(SYSDATE(), INTERVAL 30 DAY);

DELETE FROM tablename1 WHERE datetime <= DATE_SUB(SYSDATE(), INTERVAL 30 DAY);

答案 1 :(得分:1)

实施方式示例:

INSERT INTO Table2(LongIntColumn2, CurrencyColumn2)
SELECT LongIntColumn1, Avg(CurrencyColumn) as CurrencyColumn1 FROM tablename GROUP BY LongIntColumn1;

来自:https://stackoverflow.com/a/74204/2925795