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

Bagaimana untuk Mendapatkan Hari Terakhir Bulan Sebelumnya dalam PostgreSQL?

Susan Sarandon
Susan Sarandonasal
2025-01-06 09:24:41964semak imbas

How to Get the Last Day of the Previous Month in PostgreSQL?

Menentukan Hari Terakhir Bulan Sebelumnya dalam PostgreSQL

Apabila menanyakan pangkalan data untuk mendapatkan semula rekod dalam julat tarikh tertentu, selalunya perlu memasukkan hari terakhir bulan sebelumnya. Julat ini boleh berbeza-beza setiap bulan, bergantung pada tarikh semasa.

Tanpa Fungsi

Untuk menentukan hari terakhir bulan sebelumnya tanpa menggunakan fungsi, anda boleh menggunakan pertanyaan berikut untuk lajur tarikh:

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

Fungsi date_trunc('month', now()) mengembalikan hari pertama bulan semasa. Dengan menolak satu hari daripada hasil ini menggunakan operator penolakan, kita mendapat hari terakhir bulan sebelumnya.

Untuk lajur cap masa, pertanyaannya berbeza sedikit:

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

Date_trunc ('month', now()) fungsi mengembalikan permulaan bulan semasa sebagai cap waktu. Untuk mendapatkan hari terakhir pada bulan sebelumnya, kami menolak satu hari menggunakan - selang '1 hari' ungkapan.

Untuk syarat kedua, kami menambah satu hari pada date_trunc('hari' , sekarang() ) hasil menggunakan selang '1 hari' untuk memastikan julat merangkumi semua "hari ini."

Dengan Fungsi

Jika anda lebih suka menggunakan fungsi, anda boleh gunakan fungsi LAST_DAY() untuk mencapai hasil yang sama:

SELECT *
FROM tbl
WHERE my_date BETWEEN LAST_DAY(DATE_SUB(NOW(), INTERVAL 1 MONTH)) AND NOW()

Fungsi ini secara eksplisit mengira hari terakhir bulan sebelumnya berdasarkan tarikh semasa.

Atas ialah kandungan terperinci Bagaimana untuk Mendapatkan 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