ホームページ >データベース >mysql チュートリアル >SQL Server テーブルから先月のレコードを効率的に取得するにはどうすればよいですか?
問題:
データベース テーブル [メンバー] からレコードを取得します。 date_created に基づいて、前月以内に該当する
解決策:
先月のレコードを効率的かつ正確に取得するには、特定の落とし穴を回避し、次のアプローチを採用する必要があります:
排他範囲を使用するフィルタリング:
包含範囲 (BETWEEN 演算子など) を使用する代わりに、> を使用した排他的範囲フィルタリングを使用します。 <オペレーター。これにより、月の最初と最後の日の両方のレコードが確実に含まれるようになります。
月の境界を計算する:
月の始まりを導き出す適切な日付関数を使用して、前月と今月の初めを確認します。これにより、包括的な上限範囲によって引き起こされる潜在的な問題が回避されます。
サンプル クエリ:
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 サイトの他の関連記事を参照してください。