PostgreSQL
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> PostgreSQL

Làm thế nào để tiết kiệm thời gian trong cơ sở dữ liệu trong Go khi sử dụng GORM và Postgresql?

Điều tra thêm vấn đề này. Hiện tại, không có hỗ trợ nào trong GORM cho bất kỳ loại Ngày / Giờ nào ngoại trừ timestamp with time zone

Xem phần mã này từ dialect_postgres.go :

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

Vì vậy, về cơ bản tôi thấy hai lựa chọn cho bạn:

Sử dụng varchar(10) trong DB và string trong Go, chỉ cần lưu nó là "9:00 PM" (trong đó 10 là một số phù hợp với bạn)

Hoặc sử dụng timestamp with time zone trong DB, time.Time trong Go, và định dạng phần ngày của bạn thành một ngày cố định, 01/01/1970, ví dụ:

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

Trong trường hợp đó, bạn sẽ phải bỏ qua phần ngày trong bản trình bày của mình, nhưng nếu bạn định chọn theo phạm vi ngày, điều đó có thể hoạt động tốt hơn cho bạn.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cách truy vấn mảng số nguyên postgres trong mùa xuân

  2. Postgres lồng nhau nếu trong trường hợp truy vấn

  3. Cách hoạt động của Acosh () trong PostgreSQL

  4. Chuyển đổi Oracle SQL Select thành PostgreSQL select

  5. Làm thế nào để sử dụng (cài đặt) dblink trong PostgreSQL?