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

Bagaimana cara mengubah string menjadi stempel waktu tanpa zona waktu

Representasi string dari timestamp (=timestamp without time zone ) tergantung pada pengaturan lokal Anda. Oleh karena itu, untuk menghindari ambiguitas yang menyebabkan kesalahan data atau Postgres mengeluarkan pengecualian, Anda memiliki dua opsi:

1.) Gunakan format ISO 8601 , yang berfungsi sama dengan apa saja lokal atau DateStyle pengaturan:

'2013-08-20 14:52:49'

Anda mungkin harus mentransmisikan string literal secara eksplisit di mana tipe data tidak dapat diturunkan dari konteks, tergantung pada kasus penggunaan:

'2013-08-20 14:52:49'::timestamp

2.) Ubah string menjadi timestamp menggunakan to_timestamp() dengan pola template yang cocok:

to_timestamp('20/8/2013 14:52:49', 'DD/MM/YYYY hh24:mi:ss')

Ini mengembalikan timestamptz , dengan asumsi pengaturan zona waktu saat ini. Biasanya (seperti dalam penugasan) tipenya dipaksakan. Untuk timestamp , ini berarti offset waktu terpotong dan Anda mendapatkan nilai yang diharapkan. Sekali lagi, jika jenis target tidak dapat diturunkan dari konteks, Anda mungkin harus mentransmisikan secara eksplisit:

to_timestamp('20/8/2013 14:52:49', 'DD/MM/YYYY hh24:mi:ss')::timestamp

Karena itu hanya menghapus offset waktu, itu menghasilkan nilai yang diharapkan. Atau gunakan AT TIME ZONE membangun dengan zona waktu yang Anda pilih:

to_timestamp('20/8/2013 14:52:49', 'DD/MM/YYYY hh24:mi:ss') AT TIME ZONE 'UTC'

Sementara zona waktu target sama dengan timezone Anda saat ini pengaturan, tidak ada transformasi yang terjadi. Jika tidak, stempel waktu yang dihasilkan akan diubah sesuai dengan itu. Bacaan lebih lanjut:

  • Mengabaikan zona waktu sama sekali di Rails dan 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. Menghubungkan ke PostgreSQL di IRI Workbench

  2. persentil dari data histogram

  3. Menerapkan Pengaturan Multi-Datacenter untuk PostgreSQL - Bagian Kedua

  4. Menyimpan json, jsonb, hstore, xml, enum, ipaddr, dll gagal dengan kolom x bertipe json tetapi ekspresi bertipe karakter bervariasi

  5. Gambaran Umum Replikasi Level Volume untuk PostgreSQL Menggunakan DRBD