ホームページ > データベース > mysql チュートリアル > 2 つのパラメータ間の日付を一時テーブルに設定するにはどうすればよいですか?

2 つのパラメータ間の日付を一時テーブルに設定するにはどうすればよいですか?

Mary-Kate Olsen
リリース: 2024-12-28 13:46:11
オリジナル
851 人が閲覧しました

How to Populate a Temporary Table with Dates Between Two Parameters?

パラメータ間の日付を一時テーブルに移入する

2 つの日付パラメータの間の日付 (初日を含む) を一時テーブルに移入するには

ステップ 1: 再帰的共通を作成するテーブル式 (CTE)

;WITH cte AS (
SELECT CASE WHEN DATEPART(Day,@StartDate) = 1 THEN @StartDate 
            ELSE DATEADD(Month,DATEDIFF(Month,0,@StartDate)+1,0) END AS myDate
UNION ALL
SELECT DATEADD(Month,1,myDate)
FROM cte
WHERE DATEADD(Month,1,myDate) <=  @EndDate
)
ログイン後にコピー

ステップ 2: CTE から日付を選択

SELECT myDate
FROM cte
OPTION (MAXRECURSION 0)
ログイン後にコピー

例:

@StartDate = '2011-01-01' および@EndDate = '2011-08-01'、次の日付が一時テーブルに返されます:

2011-01-01
2011-02-01
2011-03-01
2011-04-01
2011-05-01
2011-06-01
2011-07-01
2011-08-01
ログイン後にコピー

注:

このアプローチは、次のようなケースを処理します。 @StartDate は、再帰を翌月の 1 日から開始するため、月の 1 日ではありません。関係なく @StartDate で開始したい場合は、CTE 定義の内部 SELECT ステートメントから 1 を削除します。

以上が2 つのパラメータ間の日付を一時テーブルに設定するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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