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

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

Barbara Streisand
リリース: 2025-01-01 10:27:10
オリジナル
208 人が閲覧しました

How to Efficiently Retrieve Last Month's Records in SQL Server?

SQL Server で前月のレコードを取得する方法

タイムスタンプ フィールドを含むデータベース テーブルを操作する場合、多くの場合、前月など、特定の期間のレコードを取得します。 SQL Server には、これを実現するためのさまざまな方法が用意されています。

問題:

レコードがその範囲内にあるメンバー テーブルから、date_created 列に基づいてレコードを抽出する必要があります。先月。たとえば、現在の日付が 2010 年 1 月 3 日の場合、2009 年 12 月 1 日から 2009 年 12 月 31 日までのレコードを取得する必要があります。

課題:

一部の既存のソリューションでは、インデックスを無視したり、意図した範囲外のデータを選択したりする問題が発生します。

正しいアプローチ:

これらの落とし穴を回避するために、推奨されるアプローチでは不等号比較を利用して正確なデータ取得を保証します。修正されたクエリは次のとおりです。

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

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