我在将日期列与当前日期进行比较时遇到问题。我的日期列是一个字符串 ('13.12.2013 17:12 - Fr.')
。我无法将其设为日期字段,因为它仅在 Joomla 日期时间选择器中以字符串形式给出。
我必须选择日期>当前日期的所有行。我尝试了一些解决方案,但没有任何效果。我当前的解决方案如下,但它仍然显示所有行,而不仅仅是日期>当前日期的行。
SELECT * FROM jtmpl2_chronoforms_data_test_reservierung
WHERE res_bestaetigt = 'yes' AND res_deleted = 0
AND STR_TO_DATE(res_date, '%d.%m.%Y') > DATE_FORMAT(CURDATE(), '%d.%m.%Y')
ORDER BY STR_TO_DATE(res_date, '%d.%m.%Y %H:%i') ASC"
有人可以帮忙吗?
最佳答案
你正在做两件相反的事情
STR_TO_DATE(res_date, '%d.%m.%Y') > DATE_FORMAT(CURDATE(), '%d.%m.%Y')
第一部分创建一个 mysql DateTime 值,这就是您想要的。
第二部分从 DataTime 值创建一个字符串。
所以您正在比较日期时间与字符串。按以下方式更改:
STR_TO_DATE(res_date, '%d.%m.%Y') > CURDATE()
您可能还必须将此条件移至“HAVING”部分。
关于php - MySQL PHP - 比较字符串日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20616019/