PostgreSQL

Cap Masa PostgreSQL To_char Dengan Zon Waktu

Cap Masa PostgreSQL To_char Dengan Zon Waktu

Kaedah pemformatan PostgreSQL merangkumi koleksi alat yang berguna untuk menerjemahkan pelbagai jenis data (tarikh / masa, bilangan bulat, titik terapung, berangka) ke rentetan berformat dan menerjemahkan rentetan berformat kembali ke jenis data yang unik. Oleh itu, kadang-kadang kita perlu menukar zon waktu juga. Waktunya selalu dicatat dalam UTC dalam cap waktu PostgreSQL untuk bentuk data zon waktu, tetapi dipaparkan secara lalai dalam penyemak imbas, sesi, atau waktu setempat pengguna. Salah satu fungsi pembantu yang kami andalkan adalah kaedah TO_CHAR (), yang membolehkan cap waktu dan cap waktu dengan zon waktu, antara bentuk lain, dan membolehkan anda mengatur kepingan cap waktu yang anda suka. Stempel waktu, ketepatan dua kali, durasi, nombor, atau nilai angka semuanya dapat ditukar menjadi rentetan menggunakan kaedah PostgreSQL TO_CHAR (). Nampaknya ada kaedah argumen tunggal, 'to_timestamp', yang mengambil argumen ketepatan dua dan berubah dari zaman Unix ke cap waktu menggunakan zon waktu. Kami akan menunjukkan kepada anda bagaimana melakukan sesuatu mengenai perkara ini dalam catatan ini. Mari kita perhatikan lebih dekat ke_char () terlebih dahulu.

Sintaks:

Fungsi Sintaks Umum untuk to_char () adalah seperti berikut:

>> To_char (ungkapan, format);

Kaedah TO_CHAR () dalam PostgreSQL memerlukan dua penegasan:

Terdapat dua jenis cap waktu yang terdapat di PostgreSQL:

Dan inilah masalahnya: borang data cap waktu standard tidak mengetahui zon waktu. Dan itu adalah keperluan SQL (bagaimana ia mungkin berlaku nampaknya di luar). Fokus utama kami ialah belajar_Char () cap waktu dengan zon waktu. Untuk mula mengerjakan PostgreSQL dengan fungsi 'to_char ()', buka shell baris perintah PostgreSQL dan sampaikan nilai parameter untuk pelayan wajib, pangkalan data, nombor port, nama pengguna, dan kata laluan. Biarkan pertimbangan ini tidak terisi jika anda perlu menggunakan parameter yang ditetapkan lalai seperti yang ditunjukkan dalam gambar di bawah.

To_char () Untuk Nombor Rentetan

Untuk memahami konsep fungsi to_Char () menggunakan cap waktu dengan zon waktu, anda harus terlebih dahulu mencuba contoh nombor rentetan. Jadi kita mempunyai nombor '1897,' dan kita akan menukarnya menjadi '9999.Format 99 'menggunakan pertanyaan di bawah. Dari output di bawah, anda dapat melihat bahawa nombor rentetan telah ditukar ke format yang ditentukan.

>> PILIH ke_char (1897, '9999.99 ');

Inilah ilustrasi lain untuk penukaran. Kali ini kami telah menukar nombor menjadi format yang berbeza dengan 'koma' di dalamnya. Karakter 'G' akan digunakan untuk menentukan koma.

>> PILIH ke_char (367.78, '9G999.99 ');

Cap_kepada Masa dengan Zon Waktu

Untuk memahami cap waktu dengan konsep zon waktu, mari kita pertimbangkan contoh mudah. Andaikan anda berada di 'Pakistan', jadi zon waktu anda mestilah 'PKT' sekarang.

Contoh 01:

Mari cuba ambil cap waktu semasa dalam pertanyaan PILIH sambil menukarnya ke format Tarikh-waktu, seperti yang ditunjukkan dalam pertanyaan di bawah. Istilah 'TZ' digunakan untuk mengembalikan Zon Waktu semasa. Keluaran memaparkan hari, tarikh, waktu, dan zon waktu.

>> PILIH ke_char (CURRENT_TIMESTAMP, 'Day Mon dd, yyyy HH12: MI AM (TZ)');

Mari ubah zon waktu kita menjadi 'Eropah / Rom'.

>> SET TimeZone = 'Eropah / Rom';

Anda akan mendapat masa, tarikh, dan zon waktu yang berbeza setelah mencuba pertanyaan PILIH yang sama, seperti yang ditunjukkan.

Contoh 02:

Apabila anda menentukan Zon Waktu dalam pertanyaan PILIH, maka output tidak akan menunjukkan zon waktu semasa seperti output di bawah.

>> PILIH ke_char (SEMASA_TIMESTAMP DI ZONA MASA 'Asia / Yerusalem', 'yyyy HH12: MI AM (TZ)');

Contoh 03:

Mari buat jadual ringkas bernama 'time' dengan dua bidang. Salah satunya adalah jenis TIMESTAMP, dan yang lain adalah jenis TIMESTAMPTZ.

>> BUAT waktu JADUAL (tanpa TIMESTAMP zona_waktu, dengan TIMESTAMPTZ_ZAMAN TIMESTAM)

Sekarang mari kita periksa zon waktu semasa yang telah kita gunakan dalam sistem kita menggunakan perintah SHOW di shell seperti berikut:

>> Tunjukkan zon waktu;

Sekarang anda harus memasukkan nilai semasa dari tarikh dan waktu zon waktu semasa yang telah anda gunakan pada peranti anda dalam jadual 'waktu' dengan menggunakan fungsi 'sekarang ()' seperti yang ditunjukkan di bawah.

>> MASUKKAN NILAI masa (sekarang (), sekarang ());

Sekarang anda boleh mengambil rekod dari jadual 'time' menggunakan pertanyaan SELECT seperti di bawah. Lajur 'without_timezone' menunjukkan tarikh dan waktu semasa tanpa zon waktu, sementara lajur 'with_timezone' menunjukkan waktu tempatan dengan zon waktu sepenuhnya.

>> PILIH * DARI masa;

Mari ubah zon waktu menjadi 'US / EASTERN' dari pertanyaan di bawah.

>> SET ZONA WAKTU SESI 'AS / TIMUR';

Sekarang mari kita periksa jadualnya sekali lagi. Anda akan melihat bagaimana nilai lajur 'with_timezone' telah dipaparkan mengikut zon waktu 'US / EASTERN', tetapi nilai 'tanpa_timezone' sama seperti sebelumnya.

>> PILIH * DARI masa;

Contoh 04:

Mari kita ada beberapa contoh lagi untuk kaedah to_char (). Andaikan jadual 'time' yang sama di atas. Kami akan menukar nilai kolom 'without_timezone' menjadi rentetan yang terdiri dari jam, minit, saat, dan zona waktu. Mari cuba pertanyaan SELECT menggunakan kaedah to_char () untuk menukar nilai lajur 'without_timezone'. Kami telah menyebut 'TZ' dalam pertanyaan kami, tetapi tidak akan menunjukkan zon waktu kerana nilai lajur tidak terdiri daripada zon waktu. Perintah yang dinyatakan di bawah memberikan output:

>> PILIH ke_char (tanpa zon_ waktu, 'HH12: MI: SS TZ') DARI masa;

Sekarang mari kita cuba pertanyaan yang sama dalam lajur 'with_timezone' yang lain, untuk menukarnya ke rentetan jam, minit, saat, dan zon waktu. Kali ini ia akan menunjukkan zon waktu dengan masa juga menggunakan pertanyaan di bawah.

>> PILIH ke_char (with_timezone, 'HH12: MI: SS TZ') DARI masa;

Kesimpulan:

Oleh kerana masalah dengan / tanpa zon waktu mempengaruhi lebih daripada sekedar pemisahan meja, saya mengesyorkan agar anda menggunakan jenis zon waktu bila boleh dilakukan. Hampir semua garis panduan membincangkan bagaimana melakukan pembersihan bergantung pada masa dalam PostgreSQL menggunakan waktu tempatan. Penyelesaian yang tepat dan sensitif zon waktu menambah sedikit komplikasi tetapi dapat menyelamatkan anda dari masalah di masa depan.

Buat semula butang tetikus anda secara berbeza untuk perisian yang berbeza dengan X-Mouse Button Control
Mungkin anda memerlukan alat yang dapat mengubah kawalan tetikus anda dengan setiap aplikasi yang anda gunakan. Sekiranya ini berlaku, anda boleh menc...
Kajian Tetikus Tanpa Wayar Microsoft Sculpt Touch
Saya baru-baru ini membaca mengenai Sentuhan Microsoft Sculpt tetikus tanpa wayar dan memutuskan untuk membelinya. Setelah menggunakannya sebentar, sa...
Trackpad dan Mouse Pointer pada skrin Windows AppyMouse untuk Tablet Windows
Pengguna tablet sering kehilangan penunjuk tetikus, terutama ketika mereka biasa menggunakan komputer riba. Telefon pintar dan tablet skrin sentuh dil...