【发布时间】:2016-09-30 19:02:42
【问题描述】:
我有一张名为activation 的表。在这里,我想将超过 30 天的记录移动到另一个表中。如何做到这一点?
SELECT * DATE_FORMAT(datetime, '%m/%d/%Y')
FROM
tablename
WHERE datetime <= DATE_SUB(SYSDATE(), INTERVAL 30 DAY)
我尝试了这个查询,但它返回一个错误:
您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在 'DATE_FORMAT(datetime, '%m/%d/%Y') FROM activation WHERE datetime 附近使用正确的语法
【问题讨论】:
-
你在
*和DATE_FORMAT(datetime, '%m/%d/%Y')之间缺少逗号(,),应该是SELECT * ,DATE_FORMAT(datetime, '%m/%d/%Y') FROM ..... -
我必须在 %m%d%Y 中传递什么吗???
-
不,那是你希望日期出现在最后一列的格式,看看 date_format 函数,dev.mysql.com/doc/refman/5.5/en/…
-
好的,谢谢这解决了我的错误,但你能指导我如何将这些记录移动到另一个表
-
如果您已经创建了表,只需执行
insert into newtable select columnnames from oldtable,如答案中所述