0

我正在努力获取从现在开始的所有日期(从今天或未来开始的所有日期)。

不幸的是,我的日期是这种格式:'%d%m%Y %H:i' (08.06.2013 12:00)

我尝试了几件事,最后一个是:

SELECT * FROM `events` WHERE DATE_FORMAT(SUBSTRING(enddate,1,9),'%Y%m%d') >= DATE_FORMAT(CURDATE(),'%Y%m%d')

我认为这会转换为:(当日期 = 27.08.2013 时)

SELECT * FROM `events` WHERE 20130827 >= 20130608

但它现在正在工作......我得到了太多的结果:-/

任何帮助,将不胜感激...

谢谢!

4

1 回答 1

1

您应该尝试使用STR_TO_DATE参考)。

SELECT * FROM `events` WHERE STR_TO_DATE(enddate, '%Y.%m.%d') >= CURDATE();

STR_TO_DATE根据给定的格式('%Y.%m.%d'在您的情况下)解析字符串并返回可与 MySQL 一起使用的日期字符串。转换后,您可以自由地将其与其他日期值或函数(如CURDATE. 您应该阅读文档以获取更多详细信息。

从长远来看,使用实际DATEDATETIME列会更好。

于 2013-06-08T12:05:33.060 回答