我想过滤掉旧的记录,只呈现新的记录。这个想法是currentDate减去2年。有一条记录如下所示(表研讨会):
属性:
ID;Day;Month;Year;Firstname;Lastname;Symposium_title;Speakers;记录
1;26;10;2012;Markus;Meier;Topic MySQL;5;
3;26;10;2011;Markus;Meier;Topic PHP;5;
6;26;01;2010;Markus;Meier;Topic CSS;5;期望输出
1;26;10;2012;Markus;Meier;Topic MySQL;5;
3;26;10;2011;Markus;Meier;Topic PHP;5;我可以很容易地做一个小的php来过滤旧的数据,但我相信有一种方法可以在一个命令中直接使用mysql来完成。
一些类似这样的查询(这只是伪代码)
SELECT * FROM Symposium WHERE (current_data() - 2 Years);备注:属性日、月、年不变。有超过50个表,这些表都是由这个属性构建的。所以不要建议改变表格。
有人能帮帮我吗?
发布于 2012-10-26 15:54:53
您可以使用STR_TO_DATE function和DATE_ADD执行此任务:
语法:
STR_TO_DATE(string, format)所以在你的代码中:
SELECT * from Symposium
WHERE DATE_ADD(STR_TO_DATE(concat(Day,'-',Month,'-',Year),'%d-%m-%Y'), INTERVAL 2 YEAR) > NOW();(遗憾的是,我现在手头没有MySQL,所以我不能测试它,但除非它有一些非常基本的拼写错误,否则它应该可以工作)
https://stackoverflow.com/questions/13082923
复制相似问题