ホームページ > データベース > mysql チュートリアル > PostgreSQL で前月の最終日を効率的に見つけるにはどうすればよいですか?

PostgreSQL で前月の最終日を効率的に見つけるにはどうすればよいですか?

Barbara Streisand
リリース: 2025-01-06 09:03:41
オリジナル
648 人が閲覧しました

How to Efficiently Find the Last Day of the Previous Month in PostgreSQL?

PostgreSQL での前月の末日を解決する

前月の末日を決定することは、データベース クエリにおける一般的な要件です。 PostgreSQL には、指定された日付範囲内のレコードを取得する効率的な方法があります。

簡単なアプローチの 1 つは、date_trunc() 関数を使用することです。日付列の場合は、

SELECT *
FROM tbl
WHERE my_date BETWEEN date_trunc('month', now())::date - 1
               AND     now()::date
ログイン後にコピー

date_trunc('month', now()) 式から 1 を引いて日付にキャストすると、実質的に前月の 1 日を取得できます (例: 2011 年 12 月 1 日)。 now()::date に 1 を追加すると、範囲内の今日の日付がすべて含まれます。

タイムスタンプ列の場合は、少し異なるアプローチが必要です。

SELECT *
FROM tbl
WHERE my_timestamp >= date_trunc('month', now()) - interval '1 day'
AND    my_timestamp < date_trunc('day', now()) + interval '1 day'
ログイン後にコピー

この場合、間隔「1 日」は、前月の最終日 (例: 2011 年 12 月 31 日) が範囲に完全に含まれるようにするために使用されます。上限の間隔「1 日」式により、「今日」も確実に含まれるようになります。

これらのメソッドを使用すると、前月の最終日を正確に判断し、目的の日付範囲内にあるレコードを取得できます。 PostgreSQL で。

以上がPostgreSQL で前月の最終日を効率的に見つけるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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