2 つの日付間の日付のリストを生成します
MySQL には、指定された日付範囲内の日付のリストを取得する標準関数が用意されています。手順は次のとおりです。
1. ストアド プロシージャを作成します:
必要な日付範囲を生成するストアド プロシージャを作成します。 make_intervals
ストアド プロシージャでは、日、分、秒など、さまざまな種類の間隔を作成できます。
2. プロセスコード:
<code class="language-sql">CREATE PROCEDURE make_intervals( startdate timestamp, enddate timestamp, intval integer, unitval varchar(10) ) BEGIN -- ... (存储过程代码,请参考答案中的完整代码) END;</code>
3. サンプル間隔の生成:
2009-01-01 から 2009-01-10 までの日付のリストを生成するには、次のコマンドを実行します。
<code class="language-sql">call make_intervals('2009-01-01 00:00:00', '2009-01-10 00:00:00', 1, 'DAY');</code>
4. データと接続します:
生成された日付範囲 (time_intervals
一時テーブルにある) をデータテーブルと結合して、必要に応じてデータを集計します。
データシナリオの例:
同様に、SQL Server の関数を作成できます。この関数は、質問で述べたものと同様の結果を生成します:
<code class="language-sql">CREATE FUNCTION GetDateList(@StartDate DATETIME, @EndDate DATETIME, @Interval INT, @Unit VARCHAR(10)) RETURNS TABLE AS BEGIN DECLARE @ThisDate DATETIME = @StartDate; WHILE @ThisDate <= @EndDate -- ... (函数代码,请参考答案中的完整代码) END;</code>
以上がMySQL と SQL Server で 2 つの日付の間の日付のリストを生成するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。