PostgreSQL

Saat Dilimi ile PostgreSQL To_char Zaman Damgası

Saat Dilimi ile PostgreSQL To_char Zaman Damgası

PostgreSQL biçimlendirme yöntemleri, farklı veri türlerini (tarih/saat, tamsayı, kayan nokta, sayısal) biçimlendirilmiş dizelere ve biçimlendirilmiş dizeleri benzersiz veri türlerine geri çevirmek için kullanışlı bir araç koleksiyonu içerir. Bundan böyle, bazen zaman dilimlerini de dönüştürmemiz gerekiyor. Zamanlama, saat dilimi veri formu için PostgreSQL zaman damgalarında her zaman UTC olarak kaydedilir, ancak varsayılan olarak tarayıcıda, oturumda veya kullanıcının yerel saatinde görüntülenir. Güvenmeye başladığımız yardımcı işlevlerinden biri, diğer biçimlerin yanı sıra zaman damgalarına ve zaman dilimine sahip zaman damgalarına izin veren ve bir zaman damgasının parçalarını istediğiniz gibi düzenlemenizi sağlayan TO_CHAR() yöntemidir. Zaman damgası, çift kesinlik, süre, sayı veya sayısal değerin tümü PostgreSQL TO_CHAR() yöntemi kullanılarak bir dizeye dönüştürülebilir. Çift duyarlıklı bir argüman alan ve zaman dilimini kullanarak Unix döneminden zaman damgasına dönüşen tek argümanlı bir yöntem olan 'to_timestamp' var gibi görünüyor. Bu yayında size bununla ilgili bir şeyi nasıl yapacağınızı göstereceğiz. Önce to_char()'a daha yakından bakalım.

Sözdizimi:

to_char() işlevi için Genel Sözdizimi aşağıdaki gibidir:

>> To_char(ifade, biçim);

PostgreSQL'deki TO_CHAR() yönteminin iki iddiaya ihtiyacı vardır:

PostgreSQL'de kullanılabilen iki zaman damgası türü vardır:

Ve işte sorun: standart zaman damgası veri formu zaman dilimlerinden habersiz. Ve bu bir SQL gerekliliği (nasıl olmuş olabileceği ötesinde görünüyor). Ana odak noktamız, bir saat dilimiyle to_Char() zaman damgasını öğrenmektir. 'to_char()' işleviyle PostgreSQL üzerinde çalışmaya başlamak için, PostgreSQL komut satırı kabuğunu açın ve zorunlu sunucu, veritabanı, bağlantı noktası numarası, kullanıcı adı ve parola için parametre değerlerini teslim edin. Aşağıdaki resimde gösterildiği gibi varsayılan belirlenmiş parametreleri kullanmanız gerekiyorsa bu hususları doldurmadan bırakın.

To_char() Dize Numarası için

Zaman dilimiyle zaman damgasını kullanan to_Char() işlevinin kavramını anlamak için önce dize numaraları örneğini denemeniz gerekir. Yani elimizde bir '1897' var ve onu '9999'a çevireceğiz.Aşağıdaki sorguyu kullanarak 99' biçimi. Aşağıdaki çıktıdan, dize numarasının belirtilen biçime dönüştürüldüğünü görebilirsiniz.

>> SELECT to_char(1897, '9999).99');

İşte dönüşüm için başka bir örnek. Bu sefer içinde 'virgül' olan bir sayıyı farklı bir biçime dönüştürdük. Virgül belirtmek için 'G' karakteri kullanılacaktır.

>> SELECT to_char(367.78, '9G999.99');

TimeZone ile To_char Zaman Damgası

Saat dilimi konseptiyle Zaman Damgasını anlamak için basit bir örnek düşünelim. Diyelim ki 'Pakistan'dasınız, bu nedenle saat diliminiz şu anda 'PKT' olmalıdır.

Örnek 01:

Aşağıdaki sorguda gösterildiği gibi, SELECT sorgusundaki geçerli zaman damgasını Tarih-saat biçimine dönüştürürken getirmeye çalışalım. 'TZ' terimi, mevcut Saat Dilimi'ni geri vermek için kullanılır. Çıktı günü, tarihi, saati ve saat dilimini görüntüler.

>> SELECT to_char(CURRENT_TIMESTAMP, 'Gün Pzt gg, yyyy SS12:MI AM (TZ)');

Saat dilimimizi 'Avrupa/Roma' olarak değiştirelim.

>> SET Saat Dilimi= 'Avrupa/Roma';

Gösterildiği gibi aynı SELECT sorgusunu denediğinizde farklı bir saat, tarih ve saat dilimi alacaksınız.

Örnek 02:

SELECT sorgusunda TimeZone'u belirttiğinizde, çıktı aşağıdaki çıktıya göre geçerli saat dilimini göstermeyecektir.

>> SELECT to_char(ZAMAN DİLİMİ 'Asia/Kudüs'te GÜNCEL_TIMESTAMP', 'yyyy SS12:MI AM (TZ)');

Örnek 03:

İki alanlı 'time' adında hızlı bir tablo oluşturalım. Biri TIMESTAMP tipinde, diğeri TIMESTAMPTZ tipinde.

>> TABLO OLUŞTUR (zaman dilimi TIMESTAMP olmadan, with_timezone TIMESTAMPTZ);

Şimdi kabuğumuzda SHOW komutunu kullanarak sistemimizde kullanmakta olduğumuz saat dilimini aşağıdaki gibi kontrol edelim:

>> Saat dilimini GÖSTER;

Şimdi aşağıda gösterildiği gibi 'now()' fonksiyonunu kullanarak cihazınızda kullanmakta olduğunuz mevcut saat diliminin tarih ve saatinin güncel değerlerini 'time' tablosuna girmelisiniz.

>> ZAMAN DEĞERLERİNE EKLE(şimdi(), şimdi());

Şimdi aşağıdaki gibi SELECT sorgusunu kullanarak kaydı 'zaman' tablosundan alabilirsiniz. 'without_timezone' sütunu saat dilimi olmadan geçerli tarih ve saati gösterirken, 'with_timezone' sütunu yerel saati tamamen saat dilimiyle birlikte gösterir.

>> SEÇ * ZAMANDAN;

Aşağıdaki sorgudan saat dilimini 'ABD/DOĞU' olarak değiştirelim.

>> OTURUM SAAT DİLİMİNİ AYARLA 'ABD/DOĞU';

Şimdi tabloyu tekrar kontrol edelim. 'with_timezone' sütununun değerinin 'ABD/DOĞU' saat dilimine göre nasıl görüntülendiğini göreceksiniz, ancak 'without_timezone' değeri öncekiyle aynı.

>> SEÇ * ZAMANDAN;

Örnek 04:

to_char() yöntemi için birkaç örnek daha verelim. Yukarıdaki tablonun aynısını 'zaman' olarak kabul edin. 'without_timezone' değeri sütununu saat, dakika, saniye ve saat diliminden oluşan bir dizeye dönüştüreceğiz. 'without_timezone' sütun değerini dönüştürmek için to_char() yöntemini kullanarak SELECT sorgusunu deneyelim. Sorgumuzda 'TZ'den bahsettik, ancak sütun değeri saat diliminden oluşmadığından saat dilimini göstermeyecek. Aşağıda belirtilen komut çıktıyı verir:

>> TO_char(zaman dilimi olmadan, 'HH12:MI:SS TZ') FROM zamanından SEÇ;

Şimdi aynı sorguyu diğer 'with_timezone' sütunu için de deneyelim, onu saat, dakika, saniye ve saat dilimine dönüştürmek için. Bu sefer aşağıdaki sorguyu kullanarak saat dilimini zamanla gösterecektir.

>> TO_char(with_timezone, 'HH12:MI:SS TZ') FROM zamanından SEÇ;

Sonuç:

Saat dilimi olan/olmayan sorunu yalnızca tablo bölümlemeden daha fazlasını etkilediğinden, mümkün olduğunda saat dilimi türünü kullanmanızı öneririm. Hemen hemen tüm yönergeler, yerel saatleri kullanarak PostgreSQL'de zamana bağlı temizlemenin nasıl yapılacağını tartıştı. Uygun, saat dilimine duyarlı bir çözüm, çok az karmaşıklık getirir, ancak sizi gelecekte beladan kurtarabilir.

Microsoft Sculpt Touch Wireless Mouse Review
I recently read about the Microsoft Sculpt Touch wireless mouse and decided to buy it. After using it for a while, I decided to share my experience wi...
AppyMouse On-screen Trackpad and Mouse Pointer for Windows Tablets
Tablet users often miss the mouse pointer, especially when they are habitual to using the laptops. The touchscreen Smartphones and tablets come with m...
Middle mouse button not working in Windows 10
The middle mouse button helps you scroll through long webpages and screens with a lot of data. If that stops, well you will end up using the keyboard ...