Php 需要在接下来的7天内包含日期的所有MySQL行,但日期列的格式不正常
我的数据库“scheduledDate”中有一列,我需要数据库中从今天起7天内具有scheduledDate的所有行 我可以使用这样的查询:Php 需要在接下来的7天内包含日期的所有MySQL行,但日期列的格式不正常,php,mysql,sql,date,Php,Mysql,Sql,Date,我的数据库“scheduledDate”中有一列,我需要数据库中从今天起7天内具有scheduledDate的所有行 我可以使用这样的查询: SELECT * FROM tblName WHERE `scheduledDate` > DATE_ADD(now(), INTERVAL 7 DAY 唯一的问题是,“scheduledDate”列的格式不是mysql时间戳(YYYY-MM-DD HH:MM:SS),而是标准的美国日期(2014年9月7日)。有没有办法在我的查询中在接下来的7天内
SELECT * FROM tblName WHERE `scheduledDate` > DATE_ADD(now(), INTERVAL 7 DAY
唯一的问题是,“scheduledDate”列的格式不是mysql时间戳(YYYY-MM-DD HH:MM:SS),而是标准的美国日期(2014年9月7日)。有没有办法在我的查询中在接下来的7天内获取所有行?我想可以使用DATE\u格式,但我一直无法理解。您可以使用
str\u to\u DATE()将字符串转换为日期。
:
WHERE scheduledDate >= Date_Add(now(), INTERVAL -7 DAY)
逻辑也需要改变。上面使用的是介于之间的,但这可能不是您真正需要的逻辑,因为now()
上有一个无关的时间组件。也许这更接近:
WHERE str_to_date(`scheduledDate`, '%m/%d/%Y') BETWEEN CURRENT_DATE() and DATE_ADD(CURRENT_DATE, INTERVAL 7 DAY)
mysql str_至_日期1。设置日期列的格式correctly@Strawberry这是理想的解决方案,但不是实际的解决方案。以这种方式引用日期列的代码太多了。在这一点上,几个月的重构并不是一个真正的选择。你能详细介绍一下这个答案吗?您可以解释OP做得不正确的地方以及如何/为什么这样做。
WHERE str_to_date(`scheduledDate`, '%m/%d/%Y') BETWEEN CURRENT_DATE() and DATE_ADD(CURRENT_DATE, INTERVAL 7 DAY)