MySQL-如何显示给定范围日期的所有日期
我有这样的记录: 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-06MySQL-如何显示给定范围日期的所有日期,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的所有日期,即使它们没有相关记录:
也许你可以用这种方法 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
}
}