ホームページ >データベース >mysql チュートリアル >データ視覚化のために MySQL で連続した日付範囲を生成するにはどうすればよいですか?
ユーザーベース増加グラフ用に MySQL で連続した日付範囲を作成する
レコードのない日であっても、MySQL で連続した日付範囲を作成するには、以下を利用できますテクニック:
SELECT DATE_ADD('2003-01-01 00:00:00.000', INTERVAL n5.num10000 n4.num1000 n3.num100 n2.num10 n1.num DAY ) AS date
FROM
(SELECT 0 AS num UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7 UNION ALL SELECT 8 UNION ALL SELECT 9) n1,
(SELECT 0 AS num UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7 UNION ALL SELECT 8 UNION ALL SELECT 9) n2,
(SELECT 0 AS num UNION ALL選択 1 のすべての結合 選択 2 のすべての結合 選択 3 の結合ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7 UNION ALL SELECT 8 UNION ALL SELECT 9) n3,
(SELECT 0 AS num UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4ユニオンオールセレクト 5 ユニオンオールセレクト 6 ユニオンオールセレクト7 UNION ALL SELECT 8 UNION ALL SELECT 9) n4,
(SELECT 0 AS num UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7 UNION ALLセレクト 8 すべてを結合 セレクト 9) n5
WHERE 日付 >='2011-01-02 00:00:00.000' AND 日付 ORDER BY date
クエリは、それぞれ 1 桁を表す列 n1 から n5 を結合することによって、連続した日付の範囲を生成します。合計範囲は各列の最大値によって決まります (たとえば、n3 の最大値が 3 の場合、範囲は 399 日になります)。
日付範囲を制限するには、WHERE 句を希望する日付間隔 (例:
<br>WHERE date >=) MIN(テーブルの日付フィールド) AND 日付
以上がデータ視覚化のために MySQL で連続した日付範囲を生成するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。