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

Bagaimana cara menghemat waktu dalam database di Go saat menggunakan GORM dan Postgresql?

Menyelidiki masalah ini lebih lanjut. Saat ini, tidak ada dukungan di GORM untuk semua jenis Tanggal/Waktu kecuali timestamp with time zone

Lihat bagian kode ini dari dialect_postgres.go :

case reflect.Struct:
   if _, ok := dataValue.Interface().(time.Time); ok {
      sqlType = "timestamp with time zone"
}

Jadi pada dasarnya saya melihat dua opsi untuk Anda:

Gunakan varchar(10) di DB, dan string di Go, cukup simpan sebagai "9:00 PM" (di mana 10 adalah angka yang cocok untuk Anda)

Atau gunakan timestamp with time zone dalam DB, time.Time di Go, dan format bagian tanggal Anda sebagai tanggal tetap, 01/01/1970, misalnya:

time.Parse("2006-01-02 3:04PM", "1970-01-01 9:00PM")

Dalam hal ini Anda harus menghilangkan bagian tanggal dalam presentasi Anda, tetapi jika Anda berencana untuk memilih berdasarkan rentang tanggal, itu bisa bekerja lebih baik 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. Dapatkan nilai presisi ganda dari string yang tidak konsisten untuk menggunakan ST_GeomFromText (PostGIS)

  2. Mengapa kode ini gagal di PostgreSQL dan bagaimana cara memperbaikinya (menyelesaikan masalah)? Apakah ini kelemahan mesin Postgres SQL?

  3. Ekstrak data dari PostgreSQL DB tanpa menggunakan pg_dump

  4. Menangani BatchUpdateException menggunakan withBatch

  5. Saya ingin memulihkan database dengan skema yang berbeda