Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/fsharp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 查找范围内的所有日期_Php_Mysql - Fatal编程技术网

Php 查找范围内的所有日期

Php 查找范围内的所有日期,php,mysql,Php,Mysql,我有一个MySQL停留表,其中每个停留都用from\u date和to\u date列定义。我想找到用户定义范围内的所有停留。例如,假设从01.01.2015到01.03.2015有一段停留时间,我希望该条目包括在从01.01.2015到31.01.2015的报告中,但也包括从01.02.2015到28.02.2015的报告中以及从01.03.2015到31.03.2015的报告中。 我已将所有内容存储为时间戳(以秒为单位)。 有人可以举例说明如何实现这一点吗?您可以使用BETWEEN在两个值之

我有一个MySQL停留表,其中每个停留都用
from\u date
to\u date
列定义。我想找到用户定义范围内的所有停留。例如,假设从
01.01.2015
01.03.2015
有一段停留时间,我希望该条目包括在从
01.01.2015
31.01.2015
的报告中,但也包括从
01.02.2015
28.02.2015
的报告中以及从
01.03.2015
31.03.2015
的报告中。 我已将所有内容存储为时间戳(以秒为单位)。
有人可以举例说明如何实现这一点吗?

您可以使用BETWEEN在两个值之间选择一个日期,并将其与OR组合,因此您可以选择开始日期或结束日期:

SELECT * FROM your_table 
WHERE (from_date BETWEEN 'date_1' AND 'date_2')
OR (to_date BETWEEN 'date_1' AND 'date_2');

有关更多信息,请参阅此页,并记住您需要将用户输入日期转换为时间戳,或将时间戳转换为日期以进行比较。

您可以使用BETWEEN在两个值之间选择一个日期,并将其与or组合,因此您可以选择from date或to date:

SELECT * FROM your_table 
WHERE (from_date BETWEEN 'date_1' AND 'date_2')
OR (to_date BETWEEN 'date_1' AND 'date_2');

有关更多信息,请参阅此页,并记住您需要将用户输入日期转换为时间戳,或将时间戳转换为日期以进行比较。

您可以使用BETWEEN在两个值之间选择一个日期,并将其与or组合,因此您可以选择from date或to date:

SELECT * FROM your_table 
WHERE (from_date BETWEEN 'date_1' AND 'date_2')
OR (to_date BETWEEN 'date_1' AND 'date_2');

有关更多信息,请参阅此页,并记住您需要将用户输入日期转换为时间戳,或将时间戳转换为日期以进行比较。

您可以使用BETWEEN在两个值之间选择一个日期,并将其与or组合,因此您可以选择from date或to date:

SELECT * FROM your_table 
WHERE (from_date BETWEEN 'date_1' AND 'date_2')
OR (to_date BETWEEN 'date_1' AND 'date_2');
有关更多信息,请参阅此页,并记住您需要将用户输入日期转换为时间戳,或将时间戳转换为日期以进行比较。

抽象MySQL查询:

select *
from table_of_stays
where ( date($stay_from_date) 
        between date($report-start-date) and date($report-end-date)) 
and (date($stay_to_date) < date($report-end-date))
选择*
从表_到表_
地点(日期($stay\u from\u date)
日期($report start date)和日期($report end date))之间
和(日期($stay_to_date)<日期($report end date))
  • 匹配的第一部分:stay_from_日期必须在报告的范围内
  • 匹配的第二部分:保留日期必须在报告的结束日期之前
  • 所有$variables都是mysql日期时间类型=2011-09-21 08:21:22,请参阅 MySQL参考:
抽象MySQL查询:

select *
from table_of_stays
where ( date($stay_from_date) 
        between date($report-start-date) and date($report-end-date)) 
and (date($stay_to_date) < date($report-end-date))
选择*
从表_到表_
地点(日期($stay\u from\u date)
日期($report start date)和日期($report end date))之间
和(日期($stay_to_date)<日期($report end date))
  • 匹配的第一部分:stay_from_日期必须在报告的范围内
  • 匹配的第二部分:保留日期必须在报告的结束日期之前
  • 所有$variables都是mysql日期时间类型=2011-09-21 08:21:22,请参阅 MySQL参考:
抽象MySQL查询:

select *
from table_of_stays
where ( date($stay_from_date) 
        between date($report-start-date) and date($report-end-date)) 
and (date($stay_to_date) < date($report-end-date))
选择*
从表_到表_
地点(日期($stay\u from\u date)
日期($report start date)和日期($report end date))之间
和(日期($stay_to_date)<日期($report end date))
  • 匹配的第一部分:stay_from_日期必须在报告的范围内
  • 匹配的第二部分:保留日期必须在报告的结束日期之前
  • 所有$variables都是mysql日期时间类型=2011-09-21 08:21:22,请参阅 MySQL参考:
抽象MySQL查询:

select *
from table_of_stays
where ( date($stay_from_date) 
        between date($report-start-date) and date($report-end-date)) 
and (date($stay_to_date) < date($report-end-date))
选择*
从表_到表_
地点(日期($stay\u from\u date)
日期($report start date)和日期($report end date))之间
和(日期($stay_to_date)<日期($report end date))
  • 匹配的第一部分:stay_from_日期必须在报告的范围内
  • 匹配的第二部分:保留日期必须在报告的结束日期之前
  • 所有$variables都是mysql日期时间类型=2011-09-21 08:21:22,请参阅 MySQL参考:

    • 好的,多亏了其他答案,我得到了最好的结果
      (保持范围\u开始=选定范围\u开始)
      在mysql中:

      SELECT * FROM stays
      WHERE  `t0`.`from_date` <= $to_date 
      AND `t0`.`to_date` >= $from_date
      
      SELECT*FROM
      其中`t0`.`from\u date`=$from\u date
      
      好的,多亏了其他答案,我得到了最好的结果
      (保持范围\u开始=选定范围\u开始)
      在mysql中:

      SELECT * FROM stays
      WHERE  `t0`.`from_date` <= $to_date 
      AND `t0`.`to_date` >= $from_date
      
      SELECT*FROM
      其中`t0`.`from\u date`=$from\u date
      
      好的,多亏了其他答案,我得到了最好的结果
      (保持范围\u开始=选定范围\u开始)
      在mysql中:

      SELECT * FROM stays
      WHERE  `t0`.`from_date` <= $to_date 
      AND `t0`.`to_date` >= $from_date
      
      SELECT*FROM
      其中`t0`.`from\u date`=$from\u date
      
      好的,多亏了其他答案,我得到了最好的结果
      (保持范围\u开始=选定范围\u开始)
      在mysql中:

      SELECT * FROM stays
      WHERE  `t0`.`from_date` <= $to_date 
      AND `t0`.`to_date` >= $from_date
      
      SELECT*FROM
      其中`t0`.`from\u date`=$from\u date
      
      那么,到目前为止,您尝试编写了哪些查询来实现这一点?这个网站并不专注于为人们提供免费代码。它的重点是使用您已经编写的现有代码帮助您解决特定问题。干杯。我不知道还有其他人,但对我来说,将时间戳列与日期进行比较很好。在MySQL Workbench中,这个数据类型实际上是以日期的形式显示的,所以,除非MySQL Workbench做了任何让它更人性化的事情,否则我希望它是这样存储的。请确保使用通用格式-yyyy-mm-dd-否则可能会引起混淆。@SlyRaskal,我已经尝试了数十亿种不同的where语句,我只是不知道该发布哪种语句。那么,到目前为止,您尝试过编写什么查询来实现这一点吗?这个网站并不专注于为人们提供免费代码。它的重点是使用您已经编写的现有代码帮助您解决特定问题。干杯。我不知道还有其他人,但对我来说,将时间戳列与日期进行比较很好。在MySQL Workbench中,这个数据类型实际上是以日期的形式显示的,所以,除非MySQL Workbench做了任何让它更人性化的事情,否则我希望它是这样存储的。请确保使用通用格式-yyyy-mm-dd-否则可能会引起混淆。@S