本质上,我需要从 dbase 表中检索一些帐户信息,其中他们有一个已通过 GET 传递的客户端的客户端,并且帐户放置日期(dateplaced)位于再次通过 GET 从日历字段传递的开始日期和结束日期之间。
下面的查询不返回任何行。我已经验证查询的 SELECT 和 FROM 部分按预期工作,并且客户端从 GET 中选择工作正常,因此留下了日期问题。“dateplaced”作为“dd/mm/yyyy”格式的varchar存储在数据库中。经过研究,我发现 mysql 需要“yyyy-mm-dd”格式的日期。我已经将 GET 数据的比较的两部分拼凑在一起,并且相当确定它们的格式正确。我只是简单地尝试使用“dateplaced”而不是 str_to_date() 并且它不起作用,所以我尝试了 str_to_date() ,如下所示,但它仍然不起作用。
谁能在这里发现我的问题?这让我发疯了。
$query = mysql_query("SELECT accountnumber, firstname, middlename, lastname, currentbalance FROM dbase WHERE clientname = '" . $_GET['client'] . "' AND str_to_date(dateplaced, '%Y-%m-%d') BETWEEN '" . $_GET['calendar_start_year'] . "-" . $_GET['calendar_start_month'] . "-" . $_GET['calendar_start_day'] . "' AND '" . $_GET['calendar_end_year'] . "-" . $_GET['calendar_end_month'] . "-" . $_GET['calendar_end_day'] . "' ORDER BY lastname") or die(mysql_error());