首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >仅从MySQL表中获取较新的记录,按日期属性进行筛选

仅从MySQL表中获取较新的记录,按日期属性进行筛选
EN

Stack Overflow用户
提问于 2012-10-26 15:51:11
回答 1查看 121关注 0票数 0

我想过滤掉旧的记录,只呈现新的记录。这个想法是currentDate减去2年。有一条记录如下所示(表研讨会):

属性:

代码语言:javascript
复制
ID;Day;Month;Year;Firstname;Lastname;Symposium_title;Speakers;

记录

代码语言:javascript
复制
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;

期望输出

代码语言:javascript
复制
1;26;10;2012;Markus;Meier;Topic MySQL;5;
3;26;10;2011;Markus;Meier;Topic PHP;5;

我可以很容易地做一个小的php来过滤旧的数据,但我相信有一种方法可以在一个命令中直接使用mysql来完成。

一些类似这样的查询(这只是伪代码)

代码语言:javascript
复制
SELECT * FROM Symposium WHERE (current_data() - 2 Years);

备注:属性日、月、年不变。有超过50个表,这些表都是由这个属性构建的。所以不要建议改变表格。

有人能帮帮我吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-10-26 15:54:53

您可以使用STR_TO_DATE functionDATE_ADD执行此任务:

语法:

代码语言:javascript
复制
STR_TO_DATE(string, format)

所以在你的代码中:

代码语言:javascript
复制
SELECT * from Symposium
WHERE DATE_ADD(STR_TO_DATE(concat(Day,'-',Month,'-',Year),'%d-%m-%Y'), INTERVAL 2 YEAR) > NOW();

(遗憾的是,我现在手头没有MySQL,所以我不能测试它,但除非它有一些非常基本的拼写错误,否则它应该可以工作)

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13082923

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档