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

Bagaimana cara mencocokkan satu hari penuh dengan bidang datetime?

Keluarkan timestamp . Anda nilai ke date jika Anda ingin sintaks sederhana. Seperti ini:

SELECT *
FROM   tbl
WHERE  timestamp_col::date = '2011-12-01';  -- date literal

Namun, dengan tabel besar ini akan lebih cepat:

SELECT *
FROM   tbl
WHERE  timestamp_col >= '2011-12-01 0:0'    -- timestamp literal
AND    timestamp_col <  '2011-12-02 0:0';

Alasan:kueri kedua tidak harus mengubah setiap nilai dalam tabel dan dapat menggunakan indeks sederhana pada kolom stempel waktu. Ekspresinya menyindir.

Catatan tidak termasuk batas atas (< bukannya <= ) untuk pemilihan yang benar.
Anda dapat menebusnya dengan membuat indeks pada ekspresi seperti ini:

CREATE INDEX tbl_ts_date_idx ON tbl (cast(timestamp_col AS date));

Kemudian versi pertama kueri akan secepat yang didapat.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Dapatkan waktu eksekusi kueri PostgreSQL

  2. pgadmin4 :server aplikasi postgresql tidak dapat dihubungi.

  3. Ekspresi reguler temukan dan ganti di Postgres

  4. Fungsi Escape untuk ekspresi reguler atau pola LIKE

  5. Cara Membandingkan Kinerja PostgreSQL Menggunakan Sysbench