获取两个日期范围之间的记录

用户名

我想选择一个月中的所有记录。例如:在日期数据库中,记录为日期

  1. 2014年1月8日
  2. 2014年2月8日
  3. 2014/03/08
  4. 2014年4月8日
  5. 2014/05/08
  6. 2014年8月14日
  7. 2014/05/09
  8. 2014年9月16日

在此,我只想选择2014年1月8日至2014年8月14日。我写查询为

$result = mysql_query("SELECT t1.qty, t2.lastname, t2.firstname, t2.date, t3.name,      t2.reservation_id, t2.payable FROM prodinventory AS t1
INNER JOIN reservation AS t2
ON t1.confirmation=t2.confirmation
INNER JOIN products AS t3
ON t1.room=t3.id
WHERE t2.date BETWEEN '$start' AND date'$end'
GROUP BY t2.confirmation") or die(mysql_error());

我得到的结果是日期

  1. 2014年1月8日
  2. 2014年2月8日
  3. 2014/03/08
  4. 2014年4月8日
  5. 2014/05/08
  6. 2014年8月14日
  7. 2014/05/09

它包括9月的日期。请帮忙。

布莱恩·德米利亚(Brian DeMilia)

像这样使用str_to_date函数:

SELECT t1.qty,
       t2.lastname,
       t2.firstname,
       t2.date,
       t3.name,
       t2.reservation_id,
       t2.payable
  FROM prodinventory AS t1
 INNER JOIN reservation AS t2
    ON t1.confirmation = t2.confirmation
 INNER JOIN products AS t3
    ON t1.room = t3.id
 WHERE str_to_date(t2.date, '%d/%m/%Y') BETWEEN
       str_to_date('$start', '%d/%m/%Y') AND
       str_to_date('$end', '%d/%m/%Y')

我也摆脱了您的GROUP BY子句。您只能将GROUP BY子句与聚合函数一起使用。您没有使用任何聚合函数。

当然,理想的做法是修改表以实际保存日期,而不是字符串。这样,您可以查询而不必进行转换。您还可以直接为日期列建立索引,而不必创建基于函数的索引。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在MYSQL中获取两个日期范围之间的记录

MySQL PHP获取记录数字在两个范围之间

如何获取两个日期范围之间的天数

在codeigniter中获取两个日期范围之间的数据

查找两个日期之间的记录

获取两个日期之间的日期

在excel中两个范围之间按年份计算记录数并处理空日期

MSSQL查询当日两个日期范围之间的所有记录

SQL查询以获取两个日期之间月份的日期范围列表

如何在 Google AppMaker 中获取两个日期之间的日期范围?

获取日期范围内两个日期之间的DAYS数据

Laravel Carbon,如何获取两个日期范围之间的所有日期?

获取两个日期范围之间以及基于所选星期的所有日期

获取两个日期之间的天数

获取两个日期之间的差异?

获取两个日期之间的天数

获取两个日期之间的时间

获取两个日期之间的周期

生成两个日期之间的日期范围

python中两个日期范围之间的重叠日期

给定时间的两个日期之间的日期范围

查找两个日期之间缺失的日期范围

获取每个时间行在两个日期之间的范围内的计数

获取c#中两个日期之间的周范围

mysql-如何获取两个时间范围之间的随机时间(而非日期)

Postgres - 使用步骤/分辨率获取两个日期之间的记录

获取两个日期之间每天记录数的最快方法

使用核心数据iOS Swift在两个日期之间获取记录

从SQL Server中的多个表获取两个日期之间的记录