logo

PostgreSQL Aralığı

Bu bölümde işleyişini anlayacağız. PostgreSQL Aralığı veri türü, ve biz de görüyoruz örnekler arasında Aralık veri türü. Ve çoğunlukla kullanılan Aralık işlevler , Örneğin, ŞİMDİ(), TO_CHAR(), EXTRACT(), justify_days(), justify_hours(), justify_interval(). Giriş ve çıkış PostgreSQL aralık değerleri için format.

PostgreSQL Aralık Veri Türü Nedir?

PostgreSQL'de, Aralık Time'ı depolamak ve dağıtmak için kullanılan başka bir veri türüdür yıllar, aylar, günler, saatler, dakikalar, saniyeler, vb. Ve aylar ve günler değerler tamsayı değerleri , oysa ikinci alan olabilir kesir değerleri.

PostgreSQL aralık veri türü değeri şunları içerir: 16 bayt depolama kabul edilebilir aralıkta bir sürenin saklanmasına yardımcı olan boyut - 178000000 yıldan 178000000'e yıllar.

dizilist.sort

Not: İkinci alanda alınan kesir basamaklarının sayısı kesinlik p olarak bilinir.

PostgreSQL Aralık veri türünün sözdizimi

PostgreSQL Interval veri tipinin sözdizimi aşağıdaki gibidir:

 @ interval [ fields ] [ (p) ] 

Yukarıdaki sözdiziminde aşağıdaki parametrelere sahibiz:

Parametre Tanım
alanlar Field parametresi Saati göstermek için kullanılır.
P P kesinlik değerini görüntülemek için kullanılır.
@ @ parametresi isteğe bağlı bir parametre olduğu için göz ardı edebiliriz.

Interval değerlerini nasıl yazabileceğimizi daha iyi anlamamız için örnek bir örnek görelim. ile @ parametresi ve @ parametresi olmadan :

 @interval '6 months before'; @interval '2 hours 30 minutes'; 

VEYA

 interval '6 months before'; interval '2 hours 30 minutes'; 

Not: Yukarıdaki ifadelerin her ikisini de birbirine karşılık geldiği için kullanabiliriz. Ayrıca, bir aralık değeri, izin verilen aralığın 0'dan 6'ya kadar başlatıldığı bir p seçmeli kesinlik değerine sahip olabilir.

PostgreSQL Aralık veri türü örneği

Nasıl yapıldığını anlamak için bir örnek örnek görelim. PostgreSQL Aralık veri türü İşler.

Aşağıdaki örnekte zamanı bulmaya çalışacağız. 2 saat 30 dakika önce, en geçen yılın şu anki zamanı ; aşağıdaki komutları kullanacağız:

 SELECT now(), now() - INTERVAL '6 months 2 hours 30 minutes' AS '2 hours 30 minutes before last year'; 

Çıktı

Yukarıdaki komutu çalıştırdıktan sonra aşağıdaki çıktıyı elde edeceğiz; Geçen yıldan 2 saat 30 dakika önce :

PostgreSQL Aralığı

Aralık veri türünün birincil örneğini gördük ve çalışmasını anladık. Şimdi Giriş ve çıkış formatını göreceğiz. aralık değerleri.

Öncelikle şunu anlayacağız Giriş formatı için PostgreSQL aralık değeri :

PostgreSQL Aralık Giriş Formatı

PostgreSQL'de aşağıdakilere sahibiz ayrıntılı sözdizimi, bu aralık değerlerini yazmamıza yardımcı olur:

 quantity unit [quantity unit...] [direction] 

Yukarıdaki sözdiziminde kullanılan aşağıdaki parametrelere sahibiz:

Parametre Tanım
miktar A miktar gibi işaretleri de kabul eden bir sayıdır + veya -
birim birim herhangi biri olabilir milenyum, yüzyıl, on yıl, yıl, ay, hafta, gün, saat, dakika, saniye, milisaniye, mikrosaniye, veya kısaltma şu şekilde olabilir y, m, d, vb. ve çoğul formlar şunlar olabilir: aylar, günler , vesaire.
yön yön parametre olabilir önce veya boş dize.

Not: Yukarıdaki sözdizimi aynı zamanda aralık çıktı formatı için de kullanılır ve postgres_verbose olarak bilinir.

Aşağıdaki örnekte, kullandığımız bazı aralık değerlerini görüntüleyeceğiz. ayrıntılı sözdizimi :

 INTERVAL '1 year 5 months 5 days'; INTERVAL '1 weeks ago'; 

ISO 8601 Aralık Formatı

Yukarıdaki ayrıntılı sözdiziminin yanı sıra, aralık değerlerini aşağıdakilerin yardımıyla yazmak ISO 8601-zaman PostgreSQL bize aşağıdaki iki yolu sunar:

    Gösterici formatı Alternatif format

ISO 8601 için tanımlayıcıların formatı aşağıdaki gibidir:

 P quantity unit [ quantity unit ...] [ T [ quantity unit ...]] 

Yukarıdaki formatta, esas aralık değeri şu şekilde başlar: P harfi , ve T harfi tanımlamak için kullanılır günün saati birimi .

Aşağıdaki tablo şunları göstermektedir: ISO 8601 aralığı birim kısaltmaları:

Kısaltma Tanım
VE Yıllar
M Aylar (tarih kısmı için)
İÇİNDE Haftalar
D Günler
H Saat
M Dakika (zaman kısmı için)
S Saniye

Not: M, T harfinden önce veya sonra görünmesine bağlı olarak aylar veya dakikalar olabilir.

Bir örnek görelim ISO 8601 tanımlayıcıları Daha iyi anlamamız için format:

ISO 8601 tanımlayıcı formatı aralığı için yazılabilir. 5 yıl 4 ay 3 gün 2 saat 1 dakika 1 saniye :

 P5Y4M3DT2H1M1S 

Ve alternatif biçimi ISO8601 aşağıda gösterildiği gibidir:

 P [ years-months-days ] [ T hours:minutes:seconds ] 

Ve aynı zamanda şununla başlar: P harfi ve T harfi, hangi böler saat ve tarih aralık değerinin parçaları.

Örneğin, ISO 8601 alternatif formu için yazılabilir 5 yıl 4 ay 3 gün 2 saat 1 dakika 1 saniye, Aşağıda gösterildiği gibi:

 P0005-04-03T02:01:01 

PostgreSQL Aralık Çıkış Formatı

Aralık değerlerinin PostgreSQL aralık çıktı formatı aşağıdakilerin yardımıyla ayarlanabilir: AYARLAMAK aralık stili Aşağıdaki örnekte görebileceğimiz gibi komut:

 SET intervalstyle = 'iso_8601'; 

PostgreSQL dört farklı çıktı formatı içerir:

    iso_8601 postgres_verbose Postgres SQL standardı

Not: Aralık değerlerini biçimlendirmek için PostgreSQL varsayılan olarak Postgres stilini kullanır.

Daha iyi anladığımızı gösteren bir örnek görelim:

Aşağıdaki komut görüntülemek için kullanılır. 5 yıl 4 ay 3 gün 2 saat 1 dakika 1 saniye dört farklı çıktı formatında:

ISO_8601 Çıktı Formatı için

Aşağıdaki komutta, AYARLAMAK the aralık stili gibi iso_8601 yukarıda belirtilen aralık değeri için:

 SET intervalstyle = 'iso_8601'; SELECT INTERVAL '5 years 4 months 3 days 2 hours 1 minute 1 second'; 

Çıktı

Yukarıdaki komutu çalıştırdıktan sonra aşağıdaki sonucu elde edeceğiz. iso_8601 aralıklı çıktı formatı:

PostgreSQL Aralığı

Postgres_verbose çıktı formatı için

Aşağıdaki komutta, AYARLAMAK the aralık stili gibi postgres_verbose yukarıda belirtilen aralık değeri için:

 SET intervalstyle = 'postgres_verbose'; SELECT INTERVAL '5 years 4 months 3 days 2 hours 1 minutes 1 second'; 

Çıktı

Yukarıdaki komutu uyguladıktan sonra aşağıdaki sonucu elde edeceğiz. postgres_verbose aralıklı çıktı formatı:

css'de resmi ortala
PostgreSQL Aralığı

Postgres çıktı formatı için

Aşağıdaki komutta, AYARLAMAK the aralık stili gibi Postgres yukarıda belirtilen aralık değeri için:

 SET intervalstyle = 'postgres'; SELECT INTERVAL '5 years 4 months 3 days 2 hours 1 minutes 1 second'; 

Çıktı

Yukarıdaki komutu başarıyla çalıştırdıktan sonra aşağıdaki sonucu elde edeceğiz. Postgres aralıklı çıktı formatı:

PostgreSQL Aralığı

Sql_standard Çıkış Formatı için

Aşağıdaki komutta, AYARLAMAK the aralık stili gibi sql_standardı yukarıda belirtilen aralık değeri için:

 SET intervalstyle = 'sql_standard'; SELECT INTERVAL '5 years 4 months 3 days 2 hours 1 minutes 1 second'; 

Çıktı

Yukarıdaki komutu başarıyla çalıştırdıktan sonra aşağıdaki sonucu elde edeceğiz. sql_standardı aralıklı çıktı formatı:

PostgreSQL Aralığı

PostgreSQL aralığını dize olarak değiştirme

Şunu kullanabiliriz: TO_CHAR() Bir aralık değerini bir dizeye değiştirme işlevi.

PostgreSQL aralığını dize olarak değiştirmek için sözdizimi

 TO_CHAR(interval,format) 

TO_CHAR() işlevi alır ilk ifade gibi bir aralık değeri ve bir tane daha biçim ve aralığı belirli bir formatta görüntüleyen bir dize alır.

Aşağıdaki örnekte PostgreSQL aralığını dize değerine dönüştüren TO_CHAR() işlevini kullanacağız:

 SELECT TO_CHAR( INTERVAL '15h 15m 15s','HH24:MI:SS' ); 

Çıktı

Yukarıdaki komutu başarıyla çalıştırdıktan sonra aşağıdaki sonucu elde edeceğiz:

PostgreSQL Aralığı

PostgreSQL Aralığıyla İlgili Operatörler ve İşlevler

Aralık operatörleri

Aşağıdakileri kullanabiliriz +, -, * vb. aritmetik operatör Aralık değerlerini almak için.

Daha iyi anlamamız için aşağıdaki örneği inceleyelim:

Aşağıdaki komutta kullanacağımız aritmetik operatörü (+) PostgreSQL aralık veri tipinin yardımıyla:

 SELECT INTERVAL '1h 50m' + INTERVAL '5m'; 

Çıktı

Yukarıdaki komutu aşağıda gösterildiği gibi uyguladığımızda aşağıdaki sonucu elde edeceğiz:

PostgreSQL Aralığı

Aşağıdaki komutta kullanacağımız aritmetik operatörü (-) PostgreSQL aralık veri tipinin yardımıyla:

 SELECT INTERVAL '3h 50m' - INTERVAL '30m'; 

Çıktı

Yukarıdaki komutu uyguladığımızda aşağıdaki sonucu elde edeceğiz:

PostgreSQL Aralığı

Aşağıdaki komutta kullanacağımız aritmetik operatörü (*) PostgreSQL aralık veri tipinin yardımıyla:

 SELECT 400 * INTERVAL '5 minute'; 

Çıktı

Yukarıdaki komutu uyguladığımızda aşağıdaki sonucu elde edeceğiz:

PostgreSQL Aralığı

PostgreSQL aralığından veri çıkarma

Şunu kullanabiliriz: ÇIKARMAK() alanları bir aralık değerinden çıkarma işlevi, Örneğin, yıl, ay, tarih vb. .

PostgreSQL aralığından veri çıkarmak için sözdizimi

ekleme pitonu
 EXTRACT(field FROM interval) 

Yukarıdaki sözdiziminde şunu kullanabiliriz: yıl, ay, tarih, saat, dakika , vb., alan parametresinde.

çıkarmak Aralıktan çıkarmak istersek, işlev çift duyarlıklı türde bir değer döndürür.

Aşağıdaki örnekte kullanacağımız ÇIKARMAK() Çift duyarlıklı değeri alma işlevi.

 SELECT EXTRACT (MINUTE FROM INTERVAL '2 hours 30 minutes' ); 

Çıktı

Yukarıdaki komutu başarıyla çalıştırdıktan sonra aşağıdaki çıktıyı alacağız; çift ​​duyarlıklı tarih bölümü değerler aşağıda gösterildiği gibidir:

PostgreSQL Aralığı

PostgreSQL aralık değerlerini ayarlama

İki fonksiyonumuz var, justify_days ve justify_hours PostgreSQL'de değişiklik yapmamıza izin veriyor 24 saatlik aralık olarak düşünmek Bir gün ve aralığı 30 gün olarak düşünmek bir ay .

PostgreSQL aralık değerlerini nasıl ayarladığımızı anlamak için bir örnek görelim:

Aşağıdaki komutta kullanacağımız justify_days ve justify_hours işlevi:

 SELECT justify_days(INTERVAL '30 days'), justify_hours(INTERVAL '24 hours'); 

Çıktı

Yukarıdaki komutu çalıştırdıktan sonra, aralığını gösteren aşağıdaki sonucu elde edeceğiz. Bir ay gibi 30 gün ve 24 saat aralığı bir gün gibi :

PostgreSQL Aralığı

Bunun yanı sıra, justify_interval fonksiyonu yardımıyla aralık değerlerini düzenler. justify_days ve justify_hours eklenen işaret değişiklikleriyle:

Aşağıdaki örnekte justify_interval fonksiyonunu SELECT komutuyla kullanacağız:

 SELECT justify_interval(interval '6 months -1 hour'); 

Çıktı

Yukarıdaki komutu uyguladıktan sonra aşağıdaki çıktıyı alacağız:

PostgreSQL Aralığı

Genel Bakış

İçinde PostgreSQL Aralık veri türü bölümünde aşağıdaki konuları öğrendik:

  • PostgreSQL Aralık verileri tür, bir dönemi depolamak ve dağıtmak için kullanılır yıllar, aylar, günler, saatler, dakikalar, saniyeler.
  • Farklı kullandık Aralık fonksiyonları , Örneğin, ŞİMDİ(), TO_CHAR(), Belirli bir tablodaki aralık değerlerini geliştirmek için.
  • PostgreSQL aralık değerlerinin her ikisi de vardır giriş ve çıkış aralık biçimi.
  • PostgreSQL aralık değerlerini aşağıdaki yardımıyla ayarlayabiliriz. justify_days(), justify_hours, justify_interval() işlevleri.
  • Şunu kullanabiliriz: ÇIKARMAK() aralık alanı değerlerini çıkarma işlevi.