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

Bagaimana cara mengetahui zona waktu stempel waktu di postgresql 8.3

Saya berasumsi Anda memiliki kolom bernama ct yang memiliki tipe TIMESTAMPTZ dalam tabel t . Kemudian Anda dapat menggunakan:

SELECT EXTRACT(TIMEZONE FROM ct) FROM t;

untuk mendapatkan offset zona waktu dalam hitungan detik. Itu memberi Anda 3600 dari UTC /GMT itu berarti GMT+1 , CET atau terserah. Nilai yang dikembalikan tergantung pada TIMEZONE Anda pengaturan.

Contoh (Saya tinggal di Jerman, zona waktu sebenarnya adalah GMT+1 /CET ):

test=# select '2008-01-01 12:00:00 GMT+5'::timestamptz;
      timestamptz       
------------------------
 2008-01-01 18:00:00+01

test=# set timezone to 'gmt';
SET
test=# select '2008-01-01 12:00:00 GMT+5'::timestamptz;
      timestamptz       
------------------------
 2008-01-01 17:00:00+00

Seperti yang Anda lihat, selalu menampilkan apa pun di zona waktu yang dikonfigurasi. Jadi offset yang akan Anda dapatkan dengan EXTRACT(TIMEZONE FROM ...) tergantung pada TIMEZONE pengaturan. Zona waktu yang diberikan pada INSERT hilang, karena tidak layak untuk diselamatkan. Yang penting adalah semuanya benar dan tidak bergantung pada TIMEZONE pengaturan. PostgreSQL melakukannya dengan sangat baik.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Instalasi PostgreSQL 9 di Windows:Tidak dapat menulis di dalam jalur lingkungan TEMP.

  2. sp_send_dbmail alternatif di postgres? Cara mudah mengirim laporan email Postgres?

  3. Dapatkan Id dari INSERT bersyarat

  4. Urutan rel berdasarkan bidang asosiasi

  5. Bagaimana cara membuat bidang ARRAY dengan batasan kunci asing di SQLAlchemy?