{"id":25746,"date":"2025-07-12T21:15:23","date_gmt":"2025-07-12T18:15:23","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/postgresql-dogum-tarihinden-yas-hesaplama\/"},"modified":"2025-07-12T21:15:23","modified_gmt":"2025-07-12T18:15:23","slug":"postgresql-dogum-tarihinden-yas-hesaplama","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/postgresql-dogum-tarihinden-yas-hesaplama\/","title":{"rendered":"PostgreSQL: Do\u011fum Tarihinden Ya\u015f Hesaplama"},"content":{"rendered":"<p># PostgreSQL&#8217;de Do\u011fum Tarihinden Ya\u015f Hesaplama: Ad\u0131m Ad\u0131m Uygulama Rehberi<\/p>\n<p>Do\u011fum tarihinden ya\u015f hesaplamak, bir\u00e7ok veri taban\u0131nda s\u0131k\u00e7a kar\u015f\u0131la\u015f\u0131lan bir i\u015flemdir. PostgreSQL kullan\u0131yorsan\u0131z, bu i\u015flemi do\u011fru ve verimli bir \u015fekilde yapmak i\u00e7in \u00e7e\u015fitli y\u00f6ntemler mevcuttur. Bu makalede, yeni ba\u015flayanlardan ileri seviye kullan\u0131c\u0131lara kadar herkesin anlayabilece\u011fi \u015fekilde, PostgreSQL&#8217;de do\u011fum tarihinden ya\u015f hesaplaman\u0131n farkl\u0131 y\u00f6ntemlerini, performans optimizasyon tekniklerini ve olas\u0131 sorunlar\u0131 ele alaca\u011f\u0131z.  Do\u011fum tarihlerini kullanarak ya\u015f hesaplaman\u0131n inceliklerini, olas\u0131 hatalar\u0131 ve bunlar\u0131n nas\u0131l \u00f6nlenece\u011fini ke\u015ffedece\u011fiz.  PostgreSQL&#8217;in sundu\u011fu g\u00fc\u00e7l\u00fc fonksiyonlar\u0131 kullanarak, verimli ve hatas\u0131z sonu\u00e7lar elde etmenize yard\u0131mc\u0131 olaca\u011f\u0131z.<\/p>\n<p><strong>PostgreSQL&#8217;de Ya\u015f Hesaplama: Temel Kavramlar<\/strong><\/p>\n<p>PostgreSQL, tarih ve zaman i\u015flemleri i\u00e7in zengin bir fonksiyon k\u00fcmesi sunar. Do\u011fum tarihinden ya\u015f hesaplamak i\u00e7in <code class=\"language-\">age()<\/code> fonksiyonunu kullanabiliriz. Ancak, bu fonksiyonun \u00e7\u0131kt\u0131s\u0131, y\u0131l, ay ve g\u00fcn birimlerini i\u00e7eren bir aral\u0131k de\u011feri d\u00f6nd\u00fcr\u00fcr.  Bu de\u011feri tam say\u0131 bir ya\u015f de\u011ferine d\u00f6n\u00fc\u015ft\u00fcrmek i\u00e7in ek i\u015flemler yapmam\u0131z gerekir.  Ayr\u0131ca, ya\u015f hesaplamas\u0131nda ay ve g\u00fcn de\u011ferlerinin nas\u0131l ele al\u0131naca\u011f\u0131n\u0131 belirlemek \u00f6nemlidir; \u00f6rne\u011fin, do\u011fum g\u00fcn\u00fc hen\u00fcz ge\u00e7mediyse ya\u015f bir alt de\u011fer almal\u0131d\u0131r.<\/p>\n<p><strong>PostgreSQL&#8217;de Ya\u015f Hesaplaman\u0131n Basit Y\u00f6ntemi: Yeni Ba\u015flayanlar \u0130\u00e7in<\/strong><\/p>\n<p><strong>\u00d6\u011frenme Yol Haritas\u0131:<\/strong> Yeni Ba\u015flayan<\/p>\n<p>A\u015fa\u011f\u0131daki SQL sorgusu, <code class=\"language-\">age()<\/code> fonksiyonunu kullanarak do\u011fum tarihinden ya\u015f\u0131 hesaplar ve sadece y\u0131l bilgisini alarak basit bir ya\u015f hesaplamas\u0131 yapar. Bu y\u00f6ntem, hassasiyetten ziyade basitlik gerektiren durumlarda kullan\u0131labilir.<\/p>\n<pre class=\"language-sql\"><code>SELECT \n    EXTRACT(YEAR FROM AGE(NOW(), '1990-05-15'::DATE)) AS age;<\/code><\/pre>\n<p>Bu sorgu, 15 May\u0131s 1990 do\u011fum tarihini kullanarak g\u00fcn\u00fcm\u00fczdeki ya\u015f\u0131n\u0131 hesaplar. <code class=\"language-\">AGE()<\/code> fonksiyonu, iki tarih aras\u0131ndaki fark\u0131 y\u0131l, ay ve g\u00fcn olarak d\u00f6nd\u00fcr\u00fcr. <code class=\"language-\">EXTRACT(YEAR FROM ...)<\/code> ise bu aral\u0131k de\u011ferinden sadece y\u0131l bilgisini ay\u0131klar.<\/p>\n<p><strong>Daha Hassas Ya\u015f Hesaplama: Orta Seviye<\/strong><\/p>\n<p><strong>\u00d6\u011frenme Yol Haritas\u0131:<\/strong> Orta Seviye<\/p>\n<p>Yukar\u0131daki y\u00f6ntem, do\u011fum g\u00fcn\u00fcn\u00fcn ge\u00e7ip ge\u00e7medi\u011fini dikkate almaz. Daha hassas bir hesaplama i\u00e7in, a\u015fa\u011f\u0131daki fonksiyonu kullanabiliriz:<\/p>\n<pre class=\"language-sql\"><code>CREATE OR REPLACE FUNCTION calculate_age(birthdate DATE)\nRETURNS INTEGER AS $$\nDECLARE\n  age INTEGER;\nBEGIN\n  SELECT EXTRACT(YEAR FROM AGE(NOW(), birthdate)) INTO age;\n  IF EXTRACT(MONTH FROM AGE(NOW(), birthdate)) &lt; 0 OR (EXTRACT(MONTH FROM AGE(NOW(), birthdate)) = 0 AND EXTRACT(DAY FROM AGE(NOW(), birthdate)) &lt; 0) THEN\n    age := age -1;\n  END IF;\n  RETURN age;\nEND;\n$$ LANGUAGE plpgsql;\n\nSELECT calculate_age('1990-05-15'::DATE);<\/code><\/pre>\n<p>Bu fonksiyon, <code class=\"language-\">age()<\/code> fonksiyonunun d\u00f6nd\u00fcrd\u00fc\u011f\u00fc ay ve g\u00fcn bilgilerini kontrol ederek, do\u011fum g\u00fcn\u00fc ge\u00e7mediyse ya\u015f de\u011ferini bir azalt\u0131r. Bu sayede daha do\u011fru bir ya\u015f hesaplamas\u0131 yap\u0131l\u0131r.  \u00d6rne\u011fin, 15 May\u0131s 1990 do\u011fumlu bir ki\u015finin 14 May\u0131s 2024 tarihinde ya\u015f\u0131 33 olarak hesaplanacakt\u0131r.<\/p>\n<p><strong>Ger\u00e7ek Hayatta Ya\u015f Hesaplama \u00d6rne\u011fi: M\u00fc\u015fteri Veritaban\u0131<\/strong><\/p>\n<p><strong>\u00d6\u011frenme Yol Haritas\u0131:<\/strong> Orta Seviye<\/p>\n<p>Bir m\u00fc\u015fteri veritaban\u0131nda, m\u00fc\u015fterilerin do\u011fum tarihlerini kullanarak ya\u015flar\u0131n\u0131 hesaplamak ve farkl\u0131 ya\u015f gruplar\u0131na g\u00f6re segmentasyon yapmak isteyebilirsiniz.  A\u015fa\u011f\u0131daki sorgu, <code class=\"language-\">customers<\/code> tablosundaki m\u00fc\u015fterilerin ya\u015flar\u0131n\u0131 hesaplar:<\/p>\n<pre class=\"language-sql\"><code>SELECT \n    customer_id, \n    customer_name, \n    birthdate,\n    calculate_age(birthdate) as age\nFROM customers;<\/code><\/pre>\n<p>Bu sorgu, <code class=\"language-\">calculate_age()<\/code> fonksiyonunu kullanarak her m\u00fc\u015fterinin ya\u015f\u0131n\u0131 hesaplar ve sonucu yeni bir <code class=\"language-\">age<\/code> s\u00fctununda g\u00f6sterir.  Daha sonra bu bilgiyi, pazarlama kampanyalar\u0131n\u0131z\u0131 hedeflemek veya m\u00fc\u015fteri segmentasyonu olu\u015fturmak i\u00e7in kullanabilirsiniz.  \u00d6rne\u011fin, 18-25 ya\u015f aras\u0131 m\u00fc\u015fterilere \u00f6zel indirimler sunabilirsiniz.<\/p>\n<p><strong>Performans Optimizasyonu ve \u0130ndeksleme<\/strong><\/p>\n<p><strong>\u00d6\u011frenme Yol Haritas\u0131:<\/strong> \u0130leri Seviye<\/p>\n<p>B\u00fcy\u00fck veritabanlar\u0131nda, ya\u015f hesaplama sorgular\u0131n\u0131n performans\u0131n\u0131 optimize etmek \u00f6nemlidir.  Do\u011fum tarihi s\u00fctununa bir indeks eklemek, sorgular\u0131n daha h\u0131zl\u0131 \u00e7al\u0131\u015fmas\u0131n\u0131 sa\u011flar.<\/p>\n<pre class=\"language-sql\"><code>CREATE INDEX idx_customers_birthdate ON customers (birthdate);<\/code><\/pre>\n<p>Bu komut, <code class=\"language-\">customers<\/code> tablosunun <code class=\"language-\">birthdate<\/code> s\u00fctununa bir B-tree indeksi olu\u015fturur. \u0130ndeks, veritaban\u0131 sisteminin do\u011fum tarihine g\u00f6re verileri daha h\u0131zl\u0131 bulmas\u0131n\u0131 sa\u011flar.  Ayr\u0131ca, <code class=\"language-\">calculate_age()<\/code> fonksiyonunu optimize etmek i\u00e7in, fonksiyonun i\u00e7indeki <code class=\"language-\">AGE()<\/code> fonksiyonunun \u00e7a\u011fr\u0131lar\u0131n\u0131 azaltmak veya \u00f6nbelle\u011fe alma tekniklerini kullanabilirsiniz.  <code class=\"language-\">EXPLAIN ANALYZE<\/code> komutu ile sorgular\u0131n performans\u0131n\u0131 analiz edebilir ve iyile\u015ftirme alanlar\u0131n\u0131 belirleyebilirsiniz.  [Fatih Soysal&#8217;\u0131n PostgreSQL performans optimizasyonu hakk\u0131ndaki yaz\u0131lar\u0131](https:\/\/fatihsoysal.com) bu konuda size daha detayl\u0131 bilgiler sa\u011flayabilir.<\/p>\n<p><strong>Edge Case&#8217;ler ve Hata Y\u00f6netimi<\/strong><\/p>\n<p><strong>\u00d6\u011frenme Yol Haritas\u0131:<\/strong> \u0130leri Seviye<\/p>\n<p>Do\u011fum tarihi verilerinde eksik veya ge\u00e7ersiz de\u011ferler olabilir.  Bu durumlar\u0131 ele almak i\u00e7in NULL de\u011ferleri kontrol etmeli ve hata y\u00f6netimi mekanizmalar\u0131 kullanmal\u0131y\u0131z.  A\u015fa\u011f\u0131daki fonksiyon, NULL de\u011ferleri i\u00e7in varsay\u0131lan bir de\u011fer d\u00f6nd\u00fcr\u00fcr:<\/p>\n<pre class=\"language-sql\"><code>CREATE OR REPLACE FUNCTION calculate_age_safe(birthdate DATE)\nRETURNS INTEGER AS $$\nDECLARE\n  age INTEGER;\nBEGIN\n  IF birthdate IS NULL THEN\n    RETURN NULL; -- veya varsay\u0131lan bir de\u011fer d\u00f6nd\u00fcrebilirsiniz.\n  END IF;\n  SELECT EXTRACT(YEAR FROM AGE(NOW(), birthdate)) INTO age;\n  IF EXTRACT(MONTH FROM AGE(NOW(), birthdate)) &lt; 0 OR (EXTRACT(MONTH FROM AGE(NOW(), birthdate)) = 0 AND EXTRACT(DAY FROM AGE(NOW(), birthdate)) &lt; 0) THEN\n    age := age -1;\n  END IF;\n  RETURN age;\nEND;\n$$ LANGUAGE plpgsql;<\/code><\/pre>\n<p>Bu fonksiyon, <code class=\"language-\">birthdate<\/code> de\u011feri NULL ise NULL d\u00f6nd\u00fcr\u00fcr.  Varsay\u0131lan bir de\u011fer d\u00f6nd\u00fcrmek isterseniz, <code class=\"language-\">RETURN -1;<\/code> gibi bir sat\u0131r ekleyebilirsiniz.<\/p>\n<p><strong>Karma\u015f\u0131k Ya\u015f Hesaplama Senaryolar\u0131: Vaka Analizi<\/strong><\/p>\n<p><strong>\u00d6\u011frenme Yol Haritas\u0131:<\/strong> \u0130leri Seviye<\/p>\n<p>Baz\u0131 durumlarda, sadece tam y\u0131l bazl\u0131 ya\u015f hesaplamas\u0131 yeterli olmayabilir. \u00d6rne\u011fin, belirli bir ya\u015f grubuna girme ko\u015fulunu kontrol etmek i\u00e7in ay ve g\u00fcn bilgilerini de dikkate alman\u0131z gerekebilir.  Bu durumda, <code class=\"language-\">AGE()<\/code> fonksiyonunun d\u00f6nd\u00fcrd\u00fc\u011f\u00fc aral\u0131k de\u011ferini daha detayl\u0131 analiz etmeniz ve ko\u015fullara g\u00f6re farkl\u0131 sonu\u00e7lar \u00fcretmeniz gerekebilir.  \u00d6rne\u011fin, 18 ya\u015f\u0131ndan b\u00fcy\u00fck olup olmad\u0131\u011f\u0131n\u0131 kontrol etmek i\u00e7in a\u015fa\u011f\u0131daki sorguyu kullanabilirsiniz:<\/p>\n<pre class=\"language-sql\"><code>SELECT \n    customer_id, \n    customer_name, \n    birthdate,\n    CASE \n        WHEN EXTRACT(YEAR FROM AGE(NOW(), birthdate)) &gt;= 18 THEN '18 Ya\u015f ve \u00dczeri'\n        ELSE '18 Ya\u015f\u0131n Alt\u0131'\n    END as age_group\nFROM customers;<\/code><\/pre>\n<p>Bu sorgu, m\u00fc\u015fterilerin ya\u015f\u0131n\u0131 hesaplar ve 18 ya\u015f ve \u00fczeri ise &#8217;18 Ya\u015f ve \u00dczeri&#8217;, de\u011filse &#8217;18 Ya\u015f\u0131n Alt\u0131&#8217; olarak grupland\u0131r\u0131r.<\/p>\n<p><strong>Sonu\u00e7<\/strong><\/p>\n<p>PostgreSQL&#8217;de do\u011fum tarihinden ya\u015f hesaplamak i\u00e7in \u00e7e\u015fitli y\u00f6ntemler mevcuttur.  Basit y\u00f6ntemlerden karma\u015f\u0131k senaryolara kadar farkl\u0131 ihtiya\u00e7lar i\u00e7in uygun \u00e7\u00f6z\u00fcmler bulabilirsiniz.  Performans optimizasyonu ve hata y\u00f6netimi, b\u00fcy\u00fck veritabanlar\u0131nda kritik \u00f6neme sahiptir.  Bu makalede ele ald\u0131\u011f\u0131m\u0131z \u00f6rnekler ve teknikler, PostgreSQL&#8217;de ya\u015f hesaplama i\u015flemlerini daha verimli ve g\u00fcvenilir bir \u015fekilde ger\u00e7ekle\u015ftirmenize yard\u0131mc\u0131 olacakt\u0131r.<\/p>\n<p><strong>S\u0131k\u00e7a Sorulan Sorular:<\/strong><\/p>\n<p>1. <strong><code class=\"language-\">age()<\/code> fonksiyonu ne d\u00f6nd\u00fcr\u00fcr?<\/strong> <code class=\"language-\">age()<\/code> fonksiyonu, iki tarih aras\u0131ndaki fark\u0131 y\u0131l, ay ve g\u00fcn birimlerini i\u00e7eren bir aral\u0131k de\u011feri olarak d\u00f6nd\u00fcr\u00fcr.<\/p>\n<p>2. <strong>Ya\u015f hesaplamas\u0131nda ay ve g\u00fcn bilgilerini nas\u0131l kullanabilirim?<\/strong>  <code class=\"language-\">EXTRACT()<\/code> fonksiyonu ile aral\u0131k de\u011ferinden ay ve g\u00fcn bilgilerini alabilirsiniz ve ko\u015fullu ifadeler kullanarak bunlara g\u00f6re i\u015flemler yapabilirsiniz.<\/p>\n<p>3. <strong>Performans\u0131 nas\u0131l optimize edebilirim?<\/strong> Do\u011fum tarihi s\u00fctununa indeks ekleyerek ve <code class=\"language-\">calculate_age()<\/code> fonksiyonunu optimize ederek performans\u0131 art\u0131rabilirsiniz. <code class=\"language-\">EXPLAIN ANALYZE<\/code> komutu ile sorgular\u0131n performans\u0131n\u0131 analiz edebilirsiniz.<\/p>\n<p>4. <strong>NULL de\u011ferlerle nas\u0131l ba\u015fa \u00e7\u0131kabilirim?<\/strong>  <code class=\"language-\">CASE<\/code> ifadeleri veya NULL de\u011ferleri kontrol eden fonksiyonlar kullanarak NULL de\u011ferleri y\u00f6netebilirsiniz.<\/p>\n<p>5. <strong>Farkl\u0131 ya\u015f gruplar\u0131na g\u00f6re nas\u0131l segmentasyon yapabilirim?<\/strong>  <code class=\"language-\">CASE<\/code> ifadeleri kullanarak ya\u015f gruplar\u0131na g\u00f6re ko\u015fullu sorgular olu\u015fturabilirsiniz.<\/p>\n<p>Yazar: Fatih Soysal<\/p>\n","protected":false},"excerpt":{"rendered":"# PostgreSQL&#8217;de Do\u011fum Tarihinden Ya\u015f Hesaplama: Ad\u0131m Ad\u0131m Uygulama Rehberi Do\u011fum tarihinden ya\u015f hesaplamak, bir\u00e7ok veri taban\u0131nda s\u0131k\u00e7a&hellip;","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"csco_page_header_type":"","csco_page_load_nextpost":"","csco_page_subscribe_form":"","csco_page_contact_form":"","footnotes":""},"categories":[644],"tags":[],"class_list":{"0":"post-25746","1":"post","2":"type-post","3":"status-publish","4":"format-standard","6":"category-postgresql","7":"cs-entry","8":"cs-video-wrap"},"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v20.5 (Yoast SEO v25.3.1) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>PostgreSQL: Do\u011fum Tarihinden Ya\u015f Hesaplama<\/title>\n<meta name=\"description\" content=\"Hi\u00e7bir etiketi bulunamad\u0131.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/fatihsoysal.com\/blog\/postgresql-dogum-tarihinden-yas-hesaplama\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"PostgreSQL: Do\u011fum Tarihinden Ya\u015f Hesaplama\" \/>\n<meta property=\"og:description\" content=\"Hi\u00e7bir etiketi bulunamad\u0131.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/postgresql-dogum-tarihinden-yas-hesaplama\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2025-07-12T18:15:23+00:00\" \/>\n<meta name=\"author\" content=\"Fatih Soysal\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Yazan:\" \/>\n\t<meta name=\"twitter:data1\" content=\"Fatih Soysal\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tahmini okuma s\u00fcresi\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/postgresql-dogum-tarihinden-yas-hesaplama\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/postgresql-dogum-tarihinden-yas-hesaplama\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"PostgreSQL: Do\u011fum Tarihinden Ya\u015f Hesaplama\",\"datePublished\":\"2025-07-12T18:15:23+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/postgresql-dogum-tarihinden-yas-hesaplama\/\"},\"wordCount\":1068,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"articleSection\":[\"PostgreSQL\"],\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/postgresql-dogum-tarihinden-yas-hesaplama\/#respond\"]}],\"copyrightYear\":\"2025\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/postgresql-dogum-tarihinden-yas-hesaplama\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/postgresql-dogum-tarihinden-yas-hesaplama\/\",\"name\":\"PostgreSQL: Do\u011fum Tarihinden Ya\u015f Hesaplama\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2025-07-12T18:15:23+00:00\",\"description\":\"Hi\u00e7bir etiketi bulunamad\u0131.\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/postgresql-dogum-tarihinden-yas-hesaplama\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/postgresql-dogum-tarihinden-yas-hesaplama\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/postgresql-dogum-tarihinden-yas-hesaplama\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"PostgreSQL: Do\u011fum Tarihinden Ya\u015f Hesaplama\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/\",\"name\":\"Fatihsoysal.com\",\"description\":\"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim\",\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"tr\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\",\"name\":\"Fatih Soysal\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"tr\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"contentUrl\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"width\":512,\"height\":512,\"caption\":\"Fatih Soysal\"},\"logo\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\"},\"description\":\"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"PostgreSQL: Do\u011fum Tarihinden Ya\u015f Hesaplama","description":"Hi\u00e7bir etiketi bulunamad\u0131.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/fatihsoysal.com\/blog\/postgresql-dogum-tarihinden-yas-hesaplama\/","og_locale":"tr_TR","og_type":"article","og_title":"PostgreSQL: Do\u011fum Tarihinden Ya\u015f Hesaplama","og_description":"Hi\u00e7bir etiketi bulunamad\u0131.","og_url":"https:\/\/fatihsoysal.com\/blog\/postgresql-dogum-tarihinden-yas-hesaplama\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2025-07-12T18:15:23+00:00","author":"Fatih Soysal","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"Fatih Soysal","Tahmini okuma s\u00fcresi":"6 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihsoysal.com\/blog\/postgresql-dogum-tarihinden-yas-hesaplama\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/postgresql-dogum-tarihinden-yas-hesaplama\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"PostgreSQL: Do\u011fum Tarihinden Ya\u015f Hesaplama","datePublished":"2025-07-12T18:15:23+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/postgresql-dogum-tarihinden-yas-hesaplama\/"},"wordCount":1068,"commentCount":0,"publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"articleSection":["PostgreSQL"],"inLanguage":"tr","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fatihsoysal.com\/blog\/postgresql-dogum-tarihinden-yas-hesaplama\/#respond"]}],"copyrightYear":"2025","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/postgresql-dogum-tarihinden-yas-hesaplama\/","url":"https:\/\/fatihsoysal.com\/blog\/postgresql-dogum-tarihinden-yas-hesaplama\/","name":"PostgreSQL: Do\u011fum Tarihinden Ya\u015f Hesaplama","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2025-07-12T18:15:23+00:00","description":"Hi\u00e7bir etiketi bulunamad\u0131.","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/postgresql-dogum-tarihinden-yas-hesaplama\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/postgresql-dogum-tarihinden-yas-hesaplama\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/postgresql-dogum-tarihinden-yas-hesaplama\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"PostgreSQL: Do\u011fum Tarihinden Ya\u015f Hesaplama"}]},{"@type":"WebSite","@id":"https:\/\/fatihsoysal.com\/blog\/#website","url":"https:\/\/fatihsoysal.com\/blog\/","name":"Fatihsoysal.com","description":"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim","publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"tr"},{"@type":["Person","Organization"],"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1","name":"Fatih Soysal","image":{"@type":"ImageObject","inLanguage":"tr","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","contentUrl":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","width":512,"height":512,"caption":"Fatih Soysal"},"logo":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/"},"description":"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.","url":"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/"}]}},"yoast_meta":{"yoast_wpseo_title":"","yoast_wpseo_metadesc":"","yoast_wpseo_canonical":""},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/25746","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/comments?post=25746"}],"version-history":[{"count":0,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/25746\/revisions"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=25746"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=25746"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=25746"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}