PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

Bagaimana cara menentukan hari terakhir bulan sebelumnya menggunakan PostgreSQL?

Kedua solusi termasuk hari terakhir bulan sebelumnya dan juga termasuk semua "hari ini".

Untuk date kolom:

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

Anda dapat mengurangi nilai integer biasa dari date (tetapi bukan dari timestamp ) untuk mengurangi hari. Ini adalah cara termudah dan tercepat.

Untuk timestamp kolom:

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

Perhatikan bahwa saya menggunakan < operator untuk kondisi kedua untuk mendapatkan hasil yang tepat (~ "sebelum besok").

Saya tidak melakukan cast ke date dalam kueri kedua. Sebagai gantinya saya menambahkan interval '1 day' , untuk menghindari transmisi bolak-balik.

Lihat jenis dan fungsi tanggal / waktu di manual.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tabel sebagai argumen dari fungsi PostgreSQL

  2. Panda menulis kerangka data ke skema postgresql lainnya

  3. Bagaimana cara menggunakan operator PostgreSQL JSON(B) yang berisi tanda tanya? melalui JDBC

  4. sintaks kunci asing postgresql

  5. heroku, postgreSQL, Django, comments, deliciouspie:Tidak ada operator yang cocok dengan nama dan tipe argumen yang diberikan. Anda mungkin perlu menambahkan gips tipe eksplisit