
Sözdizimi
Aşağıda, EXTRACT()
işlevin sözdizimi gösterilmektedir :
EXTRACT(field FROM source)
Argümanlar
PostgreSQL EXTRACT()
işlevi iki argüman gerektirir:
1) field
Alan bağımsız değişkeni, tarih/saat değerinden hangi alanın çıkarılacağını belirtir.
Aşağıdaki tablo geçerli alan değerlerini gösterir:
Alan değeri | ZAMAN DAMGAMI | Aralık |
---|---|---|
CENTURY | Yüzyıl | Yüzyılların sayısı |
DAY | Ayın günü (1-31) | gün sayısı |
DECADE | Yılın 10'a bölümü olan on yıl | TIMESTAMP ile aynı |
DOW | Pazar (0) ile Cumartesi (6) arası haftanın günü | Yok |
DOY | 1 ile 366 arasında değişen yılın günü | Yok |
EPOCH | 1970-01-01 00:00:00 UTC'den bu yana geçen saniye sayısı | Aralıktaki toplam saniye sayısı |
HOUR | Saat (0-23) | saat sayısı |
ISODOW | ISO 8601'e göre haftanın günü Pazartesi (1) - Pazar (7) | Yok |
ISOYEAR | ISO 8601 hafta sayısı yıl | Yok |
MICROSECONDS | Saniye alanı, kesirli kısımlar dahil, 1000000 ile çarpılır | TIMESTAMP ile aynı |
MILLENNIUM | milenyum | milenyum sayısı |
MILLISECONDS | Saniye alanı, kesirli kısımlar dahil, 1000 ile çarpılır | TIMESTAMP ile aynı |
MINUTE | Dakika (0-59) | dakika sayısı |
MONTH | Ay, 1-12 | Ay sayısı, modulo (0-11) |
QUARTER | Yılın çeyreği | Çeyrek sayısı |
SECOND | İkinci | saniye sayısı |
TIMEZONE | Saniye cinsinden ölçülen UTC'den saat dilimi farkı | Yok |
TIMEZONE_HOUR | Saat dilimi farkının saat bileşeni | Yok |
TIMEZONE_MINUTE | Saat dilimi farkının dakika bileşeni | Yok |
WEEK | Yılın ISO 8601 hafta numaralandırma haftasının numarası | Yok |
YEAR | Yıl | TIMESTAMP ile aynı |
2) source
source
Tipte bir değerdir TIMESTAMP
ya da INTERVAL
. Bir DATE
değer iletirseniz, işlev onu bir TIMESTAMP
değere dönüştürür.
Geri dönüş değeri
EXTRACT()
Fonksiyon, bir çift hassas değer geri gönderir.
Örnekler
A) TIMESTAMP örneklerinden çıkarma
Bir zaman damgasından yılı çıkarma:
SELECT EXTRACT(YEAR FROM TIMESTAMP '2016-12-31 13:30:15');
İşte sonuç:
2016
Çeyreği bir zaman damgasından çıkarmak:
SELECT EXTRACT(QUARTER FROM TIMESTAMP '2016-12-31 13:30:15');
sonuç
4
Bir zaman damgasından ayı çıkarma:
SELECT EXTRACT(MONTH FROM TIMESTAMP '2016-12-31 13:30:15');
Sonuç aşağıdaki gibidir:
12
Bir zaman damgasından gün çıkarma:
SELECT EXTRACT(DAY FROM TIMESTAMP '2016-12-31 13:30:15');
İşte sonuç:
31
Century'yi bir zaman damgasından çıkarmak:
SELECT EXTRACT(CENTURY FROM TIMESTAMP '2016-12-31 13:30:15');
Beklendiği gibi 21 döndürdü:
21
Bir zaman damgasından on yılı çıkarma:
SELECT EXTRACT(DECADE FROM TIMESTAMP '2016-12-31 13:30:15');
Sonuç aşağıdaki gibidir:
201
Bir zaman damgasından haftanın gününü çıkarma:
SELECT EXTRACT(DOW FROM TIMESTAMP '2016-12-31 13:30:15');
Sonuç:
6
Bir zaman damgasından yılın gününü çıkarmak:
SELECT EXTRACT(DOY FROM TIMESTAMP '2016-12-31 13:30:15');
366 döndürdü:
366
Çağı bir zaman damgasından çıkarmak:
SELECT EXTRACT(EPOCH FROM TIMESTAMP '2016-12-31 13:30:15');
Sonuç:
1483191015
Bir zaman damgasından saat ayıklanıyor:
SELECT EXTRACT(HOUR FROM TIMESTAMP '2016-12-31 13:30:15');
Sonuç:
13
Dakikayı bir zaman damgasından çıkarmak:
SELECT EXTRACT(MINUTE FROM TIMESTAMP '2016-12-31 13:30:15');
İşte sonuç:
30
Bir zaman damgasından saniye çıkarma:
SELECT EXTRACT(SECOND FROM TIMESTAMP '2016-12-31 13:30:15.45');
Sonuç, ikinci ve kesirli saniyelerini içerir:
15.45
ISO 8601'e göre haftanın gününü çıkarmak:
SELECT EXTRACT(ISODOW FROM TIMESTAMP '2016-12-31 13:30:15');
Bir zaman damgasından milisaniyeyi çıkarma:
SELECT EXTRACT(MILLISECONDS FROM TIMESTAMP '2016-12-31 13:30:15');
Sonuç 15 * 1000 = 15000
15000
Bir zaman damgasından mikrosaniyeleri çıkarma:
SELECT EXTRACT(MICROSECONDS FROM TIMESTAMP '2016-12-31 13:30:15');
Sonuç 15 * 1000000 = 15000000
15000000
B) Aralık örneklerinden çıkarma
Bir aralıktan yılı çıkarma:
SELECT EXTRACT(YEAR FROM INTERVAL '6 years 5 months 4 days 3 hours 2 minutes 1 second' );
Sonuç
6
Çeyreğin bir aralıktan çıkarılması:
SELECT EXTRACT(QUARTER FROM INTERVAL '6 years 5 months 4 days 3 hours 2 minutes 1 second' );
Sonuç
2
Bir aralıktan ayı çıkarmak:
SELECT EXTRACT(MONTH FROM INTERVAL '6 years 5 months 4 days 3 hours 2 minutes 1 second' );
Sonuç
5
Bir aralıktan günü çıkarmak:
SELECT EXTRACT(DAY FROM INTERVAL '6 years 5 months 4 days 3 hours 2 minutes 1 second' );
Sonuç
4
Saati bir aralıktan çıkarma:
SELECT EXTRACT(HOUR FROM INTERVAL '6 years 5 months 4 days 3 hours 2 minutes 1 second' );
Sonuç
3
Dakikayı bir aralıktan çıkarma:
SELECT EXTRACT(MINUTE FROM INTERVAL '6 years 5 months 4 days 3 hours 2 minutes 1 second' );
Sonuç
2
İkinciyi bir aralıktan çıkarmak:
SELECT EXTRACT(SECOND FROM INTERVAL '6 years 5 months 4 days 3 hours 2 minutes 1 second' );
Sonuç
1
Milisaniyeyi bir aralıktan çıkarma:
SELECT EXTRACT(MILLISECONDS FROM INTERVAL '6 years 5 months 4 days 3 hours 2 minutes 1 second' );
Sonuç
1000
Mikrosaniyeyi bir aralıktan çıkarma:
SELECT EXTRACT(MICROSECONDS FROM INTERVAL '6 years 5 months 4 days 3 hours 2 minutes 1 second' );
Sonuç
1000000
On yılı bir aralıktan çıkarmak:
SELECT EXTRACT(DECADE FROM INTERVAL '60 years 5 months 4 days 3 hours 2 minutes 1 second' );
Sonuç
60
Bin yılı bir aralıktan çıkarmak:
SELECT EXTRACT(MILLENNIUM FROM INTERVAL '1999 years 5 months 4 days 3 hours 2 minutes 1 second' );
Sonuç
1
Yüzyılı bir aralıktan çıkarmak:
SELECT EXTRACT(CENTURY FROM INTERVAL '1999 years 5 months 4 days 3 hours 2 minutes 1 second' );
Sonuç
19