Php 计算指定日期中的总天数

Php 计算指定日期中的总天数,php,sql,mysql,date,Php,Sql,Mysql,Date,我有一个表,有两列,如图所示 表列名称为(MAXDATE、AMOUNT) 如果你看到我们有 first date range (from current date to 20-jan-2010) second date range from 20-jan-2010 to 30-jan-2010 3rd range is from 20-jan-2010 to 31-jan-2010. 在执行页面时,用户输入开始和结束日期 例如,如果用户将 start date

我有一个表,有两列,如图所示

表列名称为(MAXDATE、AMOUNT)

如果你看到我们有

   first date range (from current date to 20-jan-2010)
   second date range from 20-jan-2010 to 30-jan-2010 
   3rd range is from 20-jan-2010 to 31-jan-2010.
在执行页面时,用户输入开始和结束日期

例如,如果用户将

      start date: 18-jan-2010
      end date: 23-jan-2010
然后他在第一个选项中有2个日期,在第二个选项中有3个日期

我想在sql中计算什么

1. how many days in first range (if any this depends on supplied dates from user)
2. how many days in 2nd range  (if any this depends on supplied dates from user)
3. how many days in 3rd range  (if any this depends on supplied dates from user)

谢谢

下面是一个如何计算天数的示例


下面是一个如何计算天数的示例


您可以在MySQL中完成所有这一切:

SELECT DATEDIFF(NOW(), max_date) as days;
SELECT DATEDIFF(date2, date1) FROM
    (SELECT max_date as date1 FROM table1 LIMIT 1) as s1
    JOIN 
    (SELECT max_date as date2 FROM table1 LIMIT 1 OFFSET 1) as s2;
//etc.

您可以在MySQL中完成所有这些操作:

SELECT DATEDIFF(NOW(), max_date) as days;
SELECT DATEDIFF(date2, date1) FROM
    (SELECT max_date as date1 FROM table1 LIMIT 1) as s1
    JOIN 
    (SELECT max_date as date2 FROM table1 LIMIT 1 OFFSET 1) as s2;
//etc.

您应该考虑更改架构以包括开始日期和结束日期,例如(StaskDead,EntDeDead,Author)。我不理解有关用户输入的部分。你能举例说明你想计算哪些范围吗?谢谢。啊,我想我明白你的意思了。在你的例子中,第一个范围是18一到20简,第二个20到23月,最后一个范围是0天,对吗?你应该考虑改变你的模式,包括开始和结束日期,例如(StaskDead,EnthDead,Toad)。我不理解关于用户输入的部分。你能举例说明你想计算哪些范围吗?谢谢。啊,我想我明白你的意思了。在您的示例中,第一个范围是1月18日至1月20日,第二个范围是1月20日至1月23日,最后一个范围是0天,对吗?仅当您使用独立单位(年、同年内的月或同月内的天)时,日期的直接加减才有效<代码>日(日期1)-日(日期2)不适用于此应用程序。我想您的意思是链接到:只有在使用独立单位(年、同年内的月或同月内的天)时,日期的直接加减才有效<代码>日(日期1)-日(日期2)不适用于此应用程序。我想你是想链接到: