MySQL-如何显示给定范围日期的所有日期

MySQL-如何显示给定范围日期的所有日期,mysql,sql,date,range,Mysql,Sql,Date,Range,我有这样的记录: id | name | date 1 | aji | 2014-06-01 2 | akon | 2014-06-02 3 | dewi | 2014-06-04 4 | dani | 2014-06-05 id |姓名|日期 1 | aji | 2014-06-01 2 |阿肯| 2014-06-02 3 | dewi | 2014-06-04 4 |达尼| 2014-06-05 我想显示2014-06-01-2014-06-06的所有日期,即使它们没有相关记录:

我有这样的记录:

id | name | date 1 | aji | 2014-06-01 2 | akon | 2014-06-02 3 | dewi | 2014-06-04 4 | dani | 2014-06-05 id |姓名|日期 1 | aji | 2014-06-01 2 |阿肯| 2014-06-02 3 | dewi | 2014-06-04 4 |达尼| 2014-06-05 我想显示2014-06-01-2014-06-06的所有日期,即使它们没有相关记录:

id | name | date 1 | aji | 2014-06-01 2 | akon | 2014-06-02 NULL | NULL | 2014-06-03 3 | dewi | 2014-06-04 4 | dani | 2014-06-05 NULL | NULL | 2014-06-06 id |姓名|日期 1 | aji | 2014-06-01 2 |阿肯| 2014-06-02 空|空| 2014-06-03 3 | dewi | 2014-06-04 4 |达尼| 2014-06-05 空|空| 2014-06-06
也许你可以用这种方法

SQL Server

Select IsNull(id, Null), IsNull(name,Null),date 
   where date Between  2014-06-01 and 2014-06-06.
如果ID已设置为int,则执行以下操作

Select IsNull(id, 0), IsNull(name,Null),date 
   where date Between  2014-06-01 and 2014-06-06.
我的SQL

select id, name,date from tr_kehadiran 
    where date >= "2014-06-30" AND date <= "2014-07-06" AND id is Null AND name is Null
从tr_kehadiran选择id、名称和日期

其中日期>=“2014-06-30”和日期我不确定我是否理解您的要求。 但是


以下是要遵循的步骤-

如果是SQL Server

  • 使用CTE,根据您的要求填充所需的日期范围

  • 在“日期”列中将表与CTE左键联接,并填充CTE结果集中缺少的日期

  • 如果MySQL-

  • 根据要求创建一个临时表以填充日期范围

  • 左键连接日期列上的临时表,并填充CTE结果集中缺少的日期


  • 您使用的是哪种数据库管理系统?博士后?Oracle?可能与@user986959重复,我需要显示记录,即使该日期中的记录为空查询:选择IsNull(id,0),IsNull(名称,0),从tr_kehadiran开始的日期,其中日期>=“2014-06-30”,并且显示日期不包括2014-06-03和2014-06-06的记录。立即检查。这是我的错。现在我更改了IfNull语法,请查看我的答案部分。现在试试。我已经更改了查询。希望它能帮助你。
    SELECT * FROM table WHERE date BETWEEN  '2014-06-01' AND '2014-06-06'
    
    <?php
    $start = new DateTime('2014-06-01');
    $interval = new DateInterval('P1D');
    $end = new DateTime('2014-06-06');
    
    $period = new DatePeriod($start, $interval, $end);
    
    foreach ($period as $date)
    {
        if (isset($results['date'][$date]))
        {
            // Results display
        }
        else
        {
            // NULL display
        }
    }