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

Kueri Postgresql di antara rentang tanggal

Dengan tanggal (dan waktu) banyak hal menjadi lebih sederhana jika Anda menggunakan >= start AND < end .

Misalnya:

SELECT
  user_id
FROM
  user_logs
WHERE
      login_date >= '2014-02-01'
  AND login_date <  '2014-03-01'

Dalam hal ini Anda masih perlu menghitung tanggal mulai dari bulan yang Anda butuhkan, tetapi itu harus lurus ke depan dalam beberapa cara.

Tanggal akhir juga disederhanakan; hanya menambahkan tepat satu bulan. Jangan main-main dengan tanggal 28, 30, 31, dll.


Struktur ini juga memiliki keuntungan karena dapat mempertahankan penggunaan indeks.


Banyak orang mungkin menyarankan formulir seperti berikut, tetapi mereka tidak gunakan indeks:

WHERE
      DATEPART('year',  login_date) = 2014
  AND DATEPART('month', login_date) = 2

Ini melibatkan penghitungan kondisi untuk setiap baris dalam tabel (pemindaian) dan tidak menggunakan indeks untuk menemukan rentang baris yang akan cocok (pencarian rentang).



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Mengapa bilangan bulat yang tidak ditandatangani tidak tersedia di PostgreSQL?

  2. Cara mengatur ulang urutan ID pada tabel PostgreSQL

  3. PostgreSQL - kueri dari skrip bash sebagai 'postgres' pengguna basis data

  4. Bagaimana cara mendapatkan nama zona waktu saat ini di Postgres 9.3?

  5. Penjajaran planet