$sql ="SELECT * FROM orders WHERE order_date >= '$fromdate' AND order_date <= '$todate'";
正如您在上面的查询中所看到的,它指示了所需的从日期到结束日期。只是一个典型的过滤表。
如你所见。
起始日期值为10/29/2018和echo 2018-10-29。
迄今值为10/30/2018和echo 2018-10-30。因为我是这样安排输入日期的。
所以问题是。我从数据库中得到这些值:
2018-10-30下午01:21:29
2018-10-29下午01:21:29
所以正如你看到的,它表示时间。所以我想扫描所有这些值,即使输入日期中只有日期。
1条答案
按热度按时间e4eetjau1#
使用
Date()
mysql中的函数这将删除比较时的时间。还有
Year
,Day
,Month
等。。。与varchar相比,使用datetime字段的优势作为奖励,一个简单的方式来转换您的日期样式是这样的
注意
(new DateTime)
括号,这样就不会浪费一个局部变量。我忘了他们在5.5中添加了什么版本的php了,我想,不管怎样,它应该可以在任何“最新”的版本中工作最后一件事是您应该查看准备好的语句,而不是连接来自最终用户的变量。否则你会被注射棒砸到。对于这个查询,如果您使用日期时间之类的东西来格式化日期,它可能会处理其中的大部分内容,但这不是保护sql的正确方法。