ホームページ >データベース >mysql チュートリアル >データ視覚化のために MySQL で連続した日付範囲を生成するにはどうすればよいですか?

データ視覚化のために MySQL で連続した日付範囲を生成するにはどうすればよいですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-12-08 19:48:17468ブラウズ

How to Generate a Sequential Date Range in MySQL for Data Visualization?

ユーザーベース増加グラフ用に 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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。