PostgreSQL Tarih Saat İşlemleri ve Fonksiyonları

Paylaş

PostgreSQL üzerinde tarih formatı, tarih aralığı, iki tarih arasındaki fark gibi tarih saat işlemlerinde kullanılan operatörler, fonksiyonlar ve anahtar kelime örnekleri yer alıyor.

Tarih Saat işlemleri ve fonksiyonları

PostgreSQL tarih ve saat bilgilerini almak ve işlem yapmak için çeşitli anahtar kelime ve fonksiyonlara sahiptir.

CURRENT_DATE

Kullanıcıya ait sistemin tarih bilgisini verir.

SELECT CURRENT_DATE;

CURRENT_TIME

Kullanıcıya ait sistemin saat bilgisini UTC olarak verir.

SELECT CURRENT_TIME;

LOCALTIME

Kullanıcıya ait sistemin saat bilgisini verir.

SELECT LOCALTIME;

CURRENT_TIMESTAMP

Kullanıcıya ait sistemin tarih-saat UTC olarak bilgisini verir.

SELECT CURRENT_TIMESTAMP, now(), transaction_timestamp();

NOT: Anahtar kelime yerine benzer sonucu veren now() veya transaction_timestamp() fonksiyonları kullanılabilir.

LOCALTIMESTAMP

Kullanıcıya ait sistemin tarih-saat bilgisini verir.

SELECT LOCALTIMESTAMP;

clock_timestamp

Fonksiyon sorgunun çalıştırıldığı andaki tarih-saat bilgisini verir.

SELECT CURRENT_TIMESTAMP, pg_sleep(1), clock_timestamp(), pg_sleep(1), CURRENT_TIMESTAMP;

statement_timestamp

Fonksiyon sorgu ifadesinin çalıştırıldığı andaki tarih-saat bilgisini verir.

SELECT CURRENT_TIMESTAMP, pg_sleep(1), statement_timestamp(), pg_sleep(1), CURRENT_TIMESTAMP;

NOT: Uzun SQL komutlarındaki her SQL ifadesine göre tarih-saat bilgisinin gerektiği günlük-log işlemlerinde sıklıkla kullanılır.

date_part

Tarih ve saat bilgisinden istenilen bilgiyi(yıl, ay, gün, saat, dakika, saniye vb.) almak için kullanılır.

Genel kullanımı aşağıdaki gibidir.

date_part('bilgi', tarih_saat);

Fonksiyonun ilk parametresinde aşağıdaki değerler kullanılabilir.

  • century
  • decade
  • year
  • month
  • day
  • hour
  • minute
  • second
  • microseconds
  • milliseconds
  • dow
  • doy
  • epoch
  • isodow
  • isoyear
  • timezone
  • timezone_hour
  • timezone_minute
SELECT date_part('second', CURRENT_TIMESTAMP) as saniye,
date_part('month', CURRENT_TIMESTAMP) as ay,
date_part('week', CURRENT_TIMESTAMP) as hafta;

Zaman değeri olarak metinsel ifadeler de kullanılabilir.

SELECT date_part('month', '2024-07-06'::DATE),
date_part('hour', '2024-07-06 15:30:00'::TIMESTAMP),
date_part('day', TIMESTAMP '2024-07-06');

extract

Bir önceki date_part fonksiyonuna benzer şekilde Tarih ve saat bilgisinden istenilen bilgiyi(yıl, ay, gün, saat, dakika, saniye vb.) almak için kullanılır.

Genel kullanımı aşağıdaki gibidir.

extract( bilgi FROM zaman_değeri);
SELECT extract('second' FROM CURRENT_TIMESTAMP) as saniye,
extract('month' FROM CURRENT_TIMESTAMP) as ay,
extract('week' FROM CURRENT_TIMESTAMP) as hafta;

Zaman değeri olarak metinsel ifadeler de kullanılabilir.

SELECT extract('month' FROM '2024-07-06'::DATE),
extract('hour' FROM '2024-07-06 15:30:00'::TIMESTAMP),
extract('day' FROM TIMESTAMP '2024-07-06');

to_date

Metinsel ifadeyi tarih formatına çevirir.

Genel kullanımı aşağıdaki gibidir.

to_date(metin, format);
SELECT to_date('20020408','YYYYMMDD'),
to_date('10 May 2007', 'DD Mon YYYY'),
to_date('2017 Apr 20','YYYY Mon DD');

to_timestamp

Metinsel ifadeyi tarih-saat formatına çevirir.

Genel kullanımı aşağıdaki gibidir.

to_date(metin, format);
SELECT to_timestamp('2012-09-21 10:30:20', 'YYYY-MM-DD HH:MI:SS'),
to_timestamp('2015     Aug','YYYY MON'),
to_timestamp('12 31 99 12:45', 'MM DD YY HH:MI');

make_date

Fonksiyona verilen değerlere göre tarih formatı oluşturur.

make_date(yıl, ay, gün);
SELECT make_date(2004, 12, 01);

make_time

Fonksiyona verilen değerlere göre saat formatı oluşturur.

make_time(saat, dakika, dakika);
SELECT make_time(22, 30, 45);

age

Fonksiyona verilen değerlere göre postgresql iki tarih arasındaki fark bulmak için kullanılır.

age(tarih1, tarih2);
select age(current_timestamp, '07-06-1963'), age('01-05-2023', '04-08-1963');

AT TIME ZONE

Operatör verilen tarih saat dilimine göre tarih-saat formatını verir.

tarih_saat AT TIME ZONE hedef_saat_dilimi
SELECT CURRENT_TIMESTAMP AT TIME ZONE 'America/New_York';

NOT: PostgreSQL tarih saat dilimi olarak IANA kullanır.

date_trunc

Tarih saat bilgisini girilen bilgi değerinden itibaren sıfırlar.

date_trunc(bilgi, tarih_saat)
SELECT date_trunc('century', current_timestamp), date_trunc('hour', current_timestamp);

timeofday

Tarih saat bilgisini metinsel ifade olarak verir.

SELECT timeofday();

pg_sleep

Parametre olarak verilen değere göre saniye cinsinden komutların işlemesini beklemeye alır.

SELECT pg_sleep(5);

PostgreSQL Derslerine buradan ulaşabilirsiniz.

Hayırlı günler dilerim.


Bunlarda ilgini çekebilir


LinkedIn grubuna buradan katılın.