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

Hasil tak terduga dari kueri SQL dengan cap waktu ANTARA

Periksa tipe data kolom dan zona waktu . Anda . Anda mungkin bingung timestamp with time zone dan timestamp .

Sepertinya Anda memiliki timestamp di tabel Anda, tetapi kueri dengan timestamptz . Dengan cara ini, semuanya tergantung pada zona waktu lokal sesi Anda (yang default ke zona waktu server jika tidak ditentukan sebaliknya.)

Alihkan keduanya ke timestamptz , atau timestamp jika zona waktu sama sekali tidak relevan bagi Anda. (Jika ragu, gunakan timestamptz .)

Bukan penyebab masalah Anda, tetapi pertanyaan Anda mungkin seharusnya:

SELECT id, text, category, starttime, endtime, creation 
FROM   entries 
WHERE  starttime >= timestamp '2013-03-21' -- defaults to 00:00 time
AND    starttime <  timestamp '2013-03-22'
ORDER  BY id

a BETWEEN x AND y adalah hampir selalu salah untuk timestamp jenis karena bilangan pecahan! Apa yang akan dilakukan kueri Anda dengan starttime = '2013-03-21T23:59:59.123+00' ?




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Praktik terbaik untuk membuat kueri SQL SELECT sambil menangani nilai potensial yang tidak ditentukan

  2. Bagaimana Anda menggunakan variabel skrip di psql?

  3. Menggabungkan Data dengan OVER PARTITION berdasarkan tanggal

  4. Kunci asing PostgreSQL tidak ada, masalah warisan?

  5. Bagaimana cara menghapus tampilan tabel * atau * dari database PostgreSQL?