Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Cekap Mencari Hari Terakhir Bulan Sebelumnya dalam PostgreSQL?

Bagaimana untuk Cekap Mencari Hari Terakhir Bulan Sebelumnya dalam PostgreSQL?

Barbara Streisand
Barbara Streisandasal
2025-01-06 09:03:41707semak imbas

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

Menyelesaikan Hari Terakhir Bulan Sebelumnya dalam PostgreSQL

Menentukan hari terakhir bulan sebelumnya ialah keperluan biasa dalam pertanyaan pangkalan data. Dalam PostgreSQL, terdapat kaedah yang cekap untuk mendapatkan semula rekod dalam julat tarikh yang ditentukan.

Satu pendekatan mudah ialah menggunakan fungsi date_trunc(). Untuk lajur tarikh, gunakan:

SELECT *
FROM tbl
WHERE my_date BETWEEN date_trunc('month', now())::date - 1
               AND     now()::date

Dengan menolak 1 daripada ungkapan date_trunc('month', now()) dan menghantarnya ke tarikh, anda akan mendapat hari pertama bulan sebelumnya ( cth., 1 Disember 2011). Menambah 1 kepada now()::date termasuk semua tarikh hari ini dalam julat.

Untuk lajur cap masa, pendekatan yang sedikit berbeza diperlukan:

SELECT *
FROM tbl
WHERE my_timestamp >= date_trunc('month', now()) - interval '1 day'
AND    my_timestamp < date_trunc('day', now()) + interval '1 day'

Dalam kes ini, selang waktu '1 hari' digunakan untuk memastikan bahawa hari terakhir bulan sebelumnya (mis., 31 Disember 2011) disertakan sepenuhnya dalam julat. Ungkapan selang '1 hari' pada sempadan atas memastikan bahawa "hari ini" turut disertakan.

Menggunakan kaedah ini, anda boleh menentukan dengan tepat hari terakhir bulan sebelumnya dan mendapatkan semula rekod yang termasuk dalam julat tarikh yang diingini dalam PostgreSQL.

Atas ialah kandungan terperinci Bagaimana untuk Cekap Mencari Hari Terakhir Bulan Sebelumnya dalam PostgreSQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn