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

API Kriteria JPA:cara mengambil tanggal dalam format mm/hh/tttt

Kriteria API mendefinisikan function expression untuk menjalankan fungsi SQL asli di CriteriaBuilder antarmuka sebagai berikut:

<T> Expression<T> function(String name, Class<T> type, Expression<?>... args);

dimana name adalah nama fungsi SQL, type adalah tipe pengembalian yang diharapkan dan args adalah daftar variabel argumen (jika ada).

Berikut adalah contoh cara menggunakannya dalam kueri Kriteria:

CriteriaBuilder cb = entityManager.getCriteriaBuilder();
CriteriaQuery cq = cb.createQuery(String.class);
Root<RadExamTimes> root = cq.from(RadExamTimes.class);
cq.select( cb.function("to_char", String.class, root.get("begin_exam"), cb.literal("MM/DD/YYYY")));

TypedQuery<String> query = entityManager.createQuery(cq);
List<String> result = query.getResultList();

dimana

  • RadExamTimes :entitas akar hipotetis
  • MM/DD/YYYY :format khusus database (dalam contoh ini format tanggal Postgresql; untuk Oracle gunakan format Ora, dll)
  • to_char :Fungsi Postgresql untuk mengubah nilai tanggal menjadi string
  • begin_exam :kolom tanggal yang akan diformat

String format tidak dapat diteruskan apa adanya sehingga literal() metode yang digunakan untuk membungkusnya.

Catatan:Contoh di atas diuji pada database MySQL dengan fungsi MySQL dan format tanggal yang sesuai; tetapi contoh diubah agar sesuai dengan sintaks Postgresql.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana saya bisa mengatasi kesalahan integritas untuk bidang yang tidak ada?

  2. Terjadi kesalahan saat menginstal pg (0.17.1), dan Bundler tidak dapat melanjutkan

  3. Sisipan besar-besaran dengan janji pg

  4. Antrian penguncian yang optimis

  5. Fungsi rasio_ke_laporan postgres