0

Mysqlデータベースからデータを取得しています。クエリは次のようになります。

SELECT
DATE(cap_newspaper_page.insertDate) AS _Date,
count(*) AS Image_Captured
FROM
cap_newspaper_page
WHERE 
cap_newspaper_page.insertDate BETWEEN '2012-11-01' AND '2012-11-13'
GROUP BY
DATE(cap_newspaper_page.insertDate)
ORDER BY
DATE(cap_newspaper_page.insertDate)

データは次のように表示されます ここに画像の説明を入力してください

しかし、データベースに挿入されていないNull値も表示したいと思います。2012-11-03、2012-11-04、2012-11-09、2012-11-11のようにデータベースに挿入されていませんが、Nullまたは0として表示したいです。

  1. 2012-11-01 581
  2. 2012-11-02 587
  3. 2012-11-03 0 / null
  4. 2012-11-04 0 / null
  5. 2012-11-05 752
  6. 2012-11-06 690
  7. 2012-11-07 495
  8. 2012-11-08 623
  9. 2012-11-09 0 / null
  10. 2012-11-10 921
  11. 2012-11-11 0 / null
  12. 2012-11-12 755

何か案は??

4

1 に答える 1

0

データベースから読み取られた後、日付は何らかのデータ構造になっていると思います。それが配列である可能性があると仮定しましょう。次のようなものを使用できます(単なる例):

DateTime[] dts = new DateTime[4];
dts[0] = DateTime.Now.AddDays(-15);
dts[1] = DateTime.Now.AddDays(-4);
dts[2] = DateTime.Now.AddDays(1);
dts[3] = DateTime.Now.AddDays(4);

DateTime dtMax = dts.Max();
DateTime dtMin = dts.Min();
string str = string.Empty;
for (DateTime i = dtMin; i <= dtMax; i = i.AddDays(1))
{
     str += i.ToString("MM.dd.yyyy");
     str += Environment.NewLine;
}
于 2012-11-13T10:12:49.510 に答える