php - PHP 中的 2 列 Mysql 日期范围搜索

标签 php mysql search date range

MySQL 列 > sdate、edate(其第 2 列)。

sdate 是项目开始的开始日期,edate 是项目结束的结束日期。

所以我需要在它们之间进行搜索..

<strong>Search</strong><br />
<form method="post" action="search.php">
  Start Report Date : <input type="text" name="sdate" />
  End Report Date : <input type="text" name="edate" />
  <input type="submit" name="Submit" value="Search" />
</form>

This is example data in mysql
sdate             Project Name      edate
22 December 2008  project 1         23 December 2008
25 December 2008  project 2         26 December 2008
24 December 2008  project 3         27 December 2008
1  January 2008   project 4         20 January 2008
10 December 2008  project 5         12 December 2008

假设用户输入了 sdate(例如,2008 年 12 月 22 日)和 edate(例如,2008 年 12 月 30 日)。

应该显示

22 December 2008  project 1         23 December 2008
25 December 2008  project 2         26 December 2008
24 December 2008  project 3         27 December 2008

所以我需要一个 php 代码 sql 查询,它应该显示这两个日期之间的条目..

请帮助我..

非常感谢..

最佳答案

假设您的 sdateedate 属于 MySQL 列类型 DATE,您可以执行以下操作:

SELECT  
  Project_Name
, sdate
, edate
FROM your_table 
WHERE 
  sdate <= '2008-12-26'
 AND 
  edate >= '2008-12-26'

或者您可以使用 DATEDIFF

SELECT  
  Project_Name
, sdate
, edate
FROM your_table 
WHERE 
  DATEDIFF(sdate, '2008-12-26') <= 0
 AND 
  DATEDIFF(edate, '2008-12-26') >= 0

第一个更有效,因为 MySQL 可以将表中的所有行与静态值进行比较。对于第二个解决方案,它需要计算表中每一行的差异。

如果您的 sdateedate 列不是 DATE 列,那么您就不走运了,需要先更改它们。

关于php - PHP 中的 2 列 Mysql 日期范围搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/393639/

相关文章:

mysql - 将非 utf8 数据库转换为 utf-8

MySQL 查询超时 - 需要加快速度

php - 在 Codeigniter 中使用 UNION 并出现错误?

jquery - AJAX 从 Twitter 搜索读取 JSON 数据不起作用

java - 二进制搜索程序将编译并运行但不会完成并且不会终止?

php - Eloquent 模型中的 Laravel 关系

php - 是否可以使用 joomla 1.6 中的 p[hp 代码创建注册表单之类的表单?如果是,代码写在哪里,哪个数据库用于此?

mysql - 在 MySQL 中使用停用词进行全文搜索

php - 从性能的角度来看,将 MySQL 临时表用于高使用率的网站功能的效率如何?

javascript - PHP + JavaScript