ホームページ >データベース >mysql チュートリアル >SQL Server テーブルから先月のレコードを効率的に取得するにはどうすればよいですか?

SQL Server テーブルから先月のレコードを効率的に取得するにはどうすればよいですか?

Linda Hamilton
Linda Hamiltonオリジナル
2025-01-02 16:29:42165ブラウズ

How to Efficiently Retrieve Last Month's Records from a SQL Server Table?

SQL Server で先月のレコードを取得する

問題:

データベース テーブル [メンバー] からレコードを取得します。 date_created に基づいて、前月以内に該当する

解決策:

先月のレコードを効率的かつ正確に取得するには、特定の落とし穴を回避し、次のアプローチを採用する必要があります:

  1. 排他範囲を使用するフィルタリング:

    包含範囲 (BETWEEN 演算子など) を使用する代わりに、> を使用した排他的範囲フィルタリングを使用します。 <オペレーター。これにより、月の最初と最後の日の両方のレコードが確実に含まれるようになります。

  2. 月の境界を計算する:

    月の始まりを導き出す適切な日付関数を使用して、前月と今月の初めを確認します。これにより、包括的な上限範囲によって引き起こされる潜在的な問題が回避されます。

    • 前月の開始: DATEADD(month, -1, @startOfCurrentMonth)
    • 今月の開始: DATEADD(month 、DATEDIFF(月、0、CURRENT_TIMESTAMP)、 0)
  3. サンプル クエリ:

    DECLARE @startOfCurrentMonth DATETIME
    SET @startOfCurrentMonth = DATEADD(month, DATEDIFF(month, 0, CURRENT_TIMESTAMP), 0)
    
    SELECT *
    FROM Member
    WHERE date_created >= DATEADD(month, -1, @startOfCurrentMonth)
      AND date_created < @startOfCurrentMonth

このアプローチでは、インデックスが使用され、データが確実に使用されます。破損が防止され、指定された期間内に正しいレコードが取得されます。

以上がSQL Server テーブルから先月のレコードを効率的に取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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