SQL结合并选择较旧的一天

时间:2014-05-31 21:36:09

标签: mysql

我正在寻找一个字符串查询来执行此操作,从event_planner表中选择标题,描述列,其中月,日,年不早于今天。

我的表结构是这样设置的。

标题,描述,月,日,年

月份的格式示例为05,日期为31,年份为2014年。必须以此格式进行游戏。

4 个答案:

答案 0 :(得分:2)

我附近没有安装mysql,所以它可能无法正常工作。请随意尝试:

select title, description from event_planner
 where 
date(CONCAT('year','-',LPAD('month',2,'00'),'-',LPAD('day',2,'00'))) >= CURDATE()  

答案 1 :(得分:2)

作为注释,不需要将列转换为日期时间格式。在“常量”方面进行转换比较便宜,即当前日期:

如果它们存储为字符串,请尝试:

where concat(year, month, day) >= date_format(curdate(), '%y%m%d')

如果它们存储为数字:

where year*10000 + month*100 + day >= year(now())*10000 + month(now()) * 100 + day(now())

答案 2 :(得分:1)

您应该将日期存储为日期类型(例如,在"日期"您拥有的最后三列的列实例中)。这样,您可以使用:

SELECT title, description FROM event_planner WHERE date >= CURDATE()

如果需要其他任何内容,您可以随时在应用程序逻辑中提取日期,月份和年份。

答案 3 :(得分:1)

SELECT标题,描述FROM event_planner WHERE CONCAT(年,' - ',月,' - ',日)> = CURDATE()

这对我有用!谢谢你们!