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

Spring Data Rest:Date is null query melempar pengecualian postgres

Saya telah meluangkan waktu untuk melihat ini karena saya benar-benar ingin membandingkan "tanggal adalah nol" dalam kueri dan itulah hasilnya:

Saat Anda menggunakan "pemeran(foo.date as date) adalah null ", itu berfungsi dengan baik jika bidangnya bukan nol. Jika bidangnya nol, pengecualian ini dilempar:

org.postgresql.util.PSQLException: ERROR: cannot cast type bytea to date

Solusinya adalah gunakan penggabungan:

coalesce(:date, null) is null

Ini berfungsi dengan baik jika data di lapangan diuji atau tidak.

Contoh kueri saya:

@Query("SELECT c "
        + " FROM Entity c "
        + " WHERE "
        + "       and ( (coalesce(:dateFrom, null) is null and coalesce(:dateUntil, null) is null) "
        + "             or ((coalesce(c.date, null) is not null) "
        + "                 and ( "
        + "                        ((coalesce(:dateFrom, null) is null and coalesce(:dateUntil, null) is not null) and c.date <= :dateUntil) "
        + "                     or ((coalesce(:dateUntil, null) is null and coalesce(:dateFrom, null) is not null) and c.date >= :dateFrom)"
        + "                     or (c.date between :dateFrom and :dateUntil)"
        + "                 )"
        + "             )"
        + "       ) "

Semoga berhasil untuk Anda!



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Aktifkan dukungan SSL untuk pgsql

  2. Pembuatan kode tipe paksa JOOQ

  3. GALAT:tidak dapat memperpanjang file pg_tblspc/4815857/PG_11_201809051/16321:Tidak ada ruang tersisa di perangkat

  4. informasi yang tidak lengkap dari kueri di pg_views

  5. Metode untuk menghapus penghapusan lunak dalam hubungan orang tua-anak