ホームページ > データベース > mysql チュートリアル > MySQL と SQL Server で 2 つの日付の間の日付のリストを生成するにはどうすればよいですか?

MySQL と SQL Server で 2 つの日付の間の日付のリストを生成するにはどうすればよいですか?

Barbara Streisand
リリース: 2025-01-22 04:42:08
オリジナル
340 人が閲覧しました

How to Generate a List of Dates Between Two Dates in MySQL and SQL Server?

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート