ホームページ >データベース >mysql チュートリアル >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 サイトの他の関連記事を参照してください。