MySQL'de Tarih ve Zaman İşlemleri ve Kullanım Yöntemleri

MySQL'de Tarih ve Zaman İşlemleri ve Kullanım Yöntemleri

MySQL'de tarih ve zaman işlemleri, veri tabanı uygulamalarında önemli bir yer tutar Bu işlemler için kullanabileceğiniz birçok fonksiyon bulunur ve tarih veri türleri arasında Date, DateTime, Time ve Year yer alır Tarih formatları YYYY-MM-DD, HH:MM:SS ve benzeri şekillerde saklanır Fark bulma işlemi yapmak için DATE_DIFF veya DATEDIFF fonksiyonlarını kullanabilirsiniz Tarih aralıklarını hesaplamak ve formatlarını değiştirmek için DATE_ADD, DATE_FORMAT ve STR_TO_DATE fonksiyonları kullanılabilir Tarihleri karşılaştırmak içinse operatörler kullanılır Bu fonksiyonlar sayesinde tarih ve zaman verilerinizi daha iyi yönetebilirsiniz

MySQL'de Tarih ve Zaman İşlemleri ve Kullanım Yöntemleri

MySQL, veri tabanı işlemleri sırasında tarih ve zaman verilerini manipüle etmek için birçok işlem ve fonksiyon sunar. Bu makalede, MySQL'de tarih ve zaman işlemleriyle ilgili olarak veri türleri, kullanım yöntemleri, işlemleri ve fonksiyonları öğreneceksiniz. Tarih ve zaman verilerini işlemek önemlidir, çünkü birçok uygulama, özellikle finans ve muhasebe uygulamaları bu verilere dayanır.

MySQL'de tarih ve zaman işlemlerini yapmak için kullanabileceğiniz birçok fonksiyon var. Bu fonksiyonlar, tarih ve zaman verilerinin farklı formatları için kullanılabilir ve zaman aralıklarını hesaplama veya farklı saat dilimlerine dönüştürme gibi işlemleri yapmanıza olanak tanır. Ayrıca, tarih ve zaman verilerinin karşılaştırılması da önemlidir ve MySQL, bu işlemler için birçok işlev sağlar.

Bu makalede, tarih ve zaman verilerini manipüle etmek için MySQL'de kullanabileceğiniz temel fonksiyonlarla ilgileneceğiz. Tarih ve zaman verileriyle çalışırken bu fonksiyonları kullanabilirsiniz ve uygulamanızın gereksinimlerine göre tarih ve zaman verilerini daha iyi yönetebilirsiniz. Ayrıca, bu fonksiyonlar sayesinde tarih ve zaman verilerinin formatlarını değiştirebilir, farklı zaman aralıklarını hesaplayabilir ve verileri karşılaştırabilirsiniz.


Tarih Veri Türleri ve Formatları

Tarih ve zaman, veri tabanlarındaki önemli alanlardan biridir. MySQL veri tabanında kullanabileceğiniz tarih veri türleri, Date, DateTime, Time ve Year’dır. Date veri türü sadece tarihi, DateTime veri türü tarihi ve saati, Time veri türü sadece saati ve Year veri türü ise yalnızca yıl bilgisini tutar. Bu veri türleri kendi içlerinde farklı biçimlerde saklanır ve kullanımı da değişkenlik gösterir.

Date veri türü, ‘YYYY-MM-DD’ formatında saklanır ve bu formatta gösterilir. DateTime veri türü de aynı şekilde saklanır, yalnızca saat bilgisi eklenir. Time veri türü ise ‘HH:MM:SS’ formatında saklanır ve gösterilir. Year veri türü ise sadece dört haneli yıl bilgisini tutar.

Bu veri türlerine yönelik kullanım örnekleri ile ilgili olarak, bir tarihin toplama ya da çıkarma işlemi yapılabilir. Ayrıca tarihin farklı bir biçimde gösterilmesi için format değiştirme işlemi de yapılabilir. Bu işlemler sırasında kullanılan bazı fonksiyonlar DATE, DATE_ADD, DATE_DIFF, DATE_FORMAT, STR_TO_DATE, TIME_TO_SEC, SEC_TO_TIME olarak sıralanabilir.


Tarih İşlemleri

MySQL'de tarihler arasında fark bulma işlemi yapmak için DATE_DIFF ve DATEDIFF fonksiyonları kullanılır. DATE_DIFF, iki tarih arasındaki gün farkını hesaplar. DATEDIFF ise iki tarih arasındaki gün farkını integer olarak döndürür.

Tarihlerin toplamı işlemi yapmak için DATE_ADD fonksiyonu kullanılır. Bu fonksiyon, belirtilen tarih aralığı kadar bir tarih ekler veya çıkarır. Tarihlerin toplamı işlemi ise, tarih aralıklarını milisaniye cinsinden toplayarak yapılır.

Tarih formatlarının değiştirilmesi işlemi yapmak için DATE_FORMAT ve STR_TO_DATE fonksiyonları kullanılır. DATE_FORMAT, tarih formatını belirtilen formata göre değiştirir. STR_TO_DATE ise, belirtilen string formatındaki tarihi tarih formatına dönüştürür.

Tarihleri karşılaştırma işlemi yapmak için, "<, >, <=, >=, =, <>" operatörleri kullanılır. Tarihlerin formatlarını önceden belirlemek ve aynı format üzerinden karşılaştırmak önemlidir.


Fark Bulma İşlemi

Tarih ve zaman işlemleri konusunda sıklıkla karşılaşılan bir problem tarihler arasındaki farkın hesaplanmasıdır. Bu işlemi yaparken kullanabileceğiniz farklı yöntemler mevcuttur.

Örneğin, DATE_DIFF fonksiyonu kullanarak tarih arasındaki farkı bulabilirsiniz. Bu fonksiyon iki tarih arasındaki farkı gün, saat veya dakika cinsinden hesaplayabilir. Aşağıdaki tablo, DATE_DIFF fonksiyonu kullanılarak tarihlerin arasındaki farkların nasıl hesaplandığını göstermektedir:

Tarihler Fark Birim
2022-01-01 2021-12-31 1 Gün
2022-01-01 10:30:00 2022-01-01 09:30:00 1 Saat
2022-01-01 10:30:00 2022-01-01 10:00:00 30 Dakika

Bunun yanı sıra, DATEDIFF fonksiyonunu kullanarak da tarih arasındaki farkı hesaplayabilirsiniz. Bu fonksiyon da iki tarih arasındaki farkı gün cinsinden hesaplar. Örnek kullanımı şu şekildedir:

SELECT DATEDIFF('2022-01-01', '2021-12-31') AS fark;

Hem DATE_DIFF hem de DATEDIFF fonksiyonları tarih arasındaki farkı hesaplamak için kullanılabilecek basit ve etkili yöntemlerdir.


DATE_DIFF Fonksiyonu

DATE_DIFF fonksiyonu, farklı tarihler arasındaki gün sayısını hesaplamak için kullanılan bir fonksiyondur. DATE_DIFF fonksiyonunun kullanımı oldukça basittir. Fonksiyon, iki tarih arasındaki gün sayısını hesaplar ve sonucu döndürür. DATE_DIFF fonksiyonu, date1 ve date2 parametrelerini alır. Parametreler, date veya datetime türünde olmalıdır.

Burada kullanılan date1 ve date2 parametreleri arasındaki farkı almak için DATE_DIFF fonksiyonunu kullanarak bir örnek gösterebiliriz. Örneğin, 2022-06-05 ve 2022-06-02 tarihleri arasındaki farkı almak için aşağıdaki sorguyu kullanabilirsiniz:

DATE_DIFF fonksiyonu örneği:
SELECT DATE_DIFF('2022-06-05', '2022-06-02');

Bu sorgu sonucunda 3 çıktısı elde edilecektir. Bu çıktı, 2022-06-05 ve 2022-06-02 tarihleri arasındaki gün farkını temsil etmektedir.

Ayrıca, DATE_DIFF fonksiyonu mod parametresi alabilir. Mod parametresi, tarih aralığındaki farkın hangi birimlerde olacağını belirler. Örneğin, gün, saat, dakika, saniye gibi birimler seçilebilir. Mod parametresinin eksik bırakılması durumunda, fonksiyonun varsayılan modu gün olarak atanır.

DATE_DIFF fonksiyonu ile ilgili diğer bir örnek, 1999-02-21 tarihinden 2022-06-05 tarihine kadar geçen gün sayısını hesaplamaktır. Bu örnekte, fonksiyon 2 tarih parametresi ve mod parametresi ile kullanılır. Örnek sorgu aşağıdaki gibidir:

DATE_DIFF fonksiyonu örneği 2:
SELECT DATE_DIFF('2022-06-05', '1999-02-21', DAY);

Bu sorgu sonucunda 8524 çıktısı elde edilir, yani 1999-02-21 tarihinden 2022-06-05 tarihine kadar geçen gün sayısıdır.

DATE_DIFF fonksiyonu, tarih aralıklarını karşılaştırmak, zamanlama ve otomasyon işlemleri yapmak için oldukça faydalı bir fonksiyondur. Hem date hem de datetime türleriyle kullanılabilir ve mod parametresi seçenekleri ile birlikte farklı birime dönüştürebilir. Fonksiyonun kullanımı kolaydır ve her türlü karmaşıklığı ortadan kaldırmaya yardımcı olabilir.


DATEDIFF Fonksiyonu

DATEDIFF fonksiyonu, iki farklı tarih arasındaki farkı gün olarak hesaplar. Bu fonksiyon da DATE_DIFF fonksiyonu gibi çalışır. Ancak, DATEDIFF fonksiyonu MySQL'in tarih işlevlerinden biridir ve YEAR_TO_MONTH ve DAY_HOUR dahil olmak üzere diğer birçok işlevle birlikte kullanılabilir. DATEDIFF fonksiyonunun kullanımı oldukça basittir ve genellikle yerel tarihlerle çalışır.

Bir örnek vermek gerekirse: iki tarih arasındaki farkı hesaplamak için DATEDIFF fonksiyonu kullanılabilir. Örneğin, "2022-12-31" ve "2022-12-01" arasındaki tarih farkını hesaplamak istiyorsanız, DATEDIFF fonksiyonunu kullanarak "DATEDIFF('2022-12-31', '2022-12-01')" şeklinde yazabilirsiniz. Bu işlem sonucunda, 30 olarak sonuçlanacaktır. DATEDIFF fonksiyonu, tarihler arasındaki farkı doğrudan hesaplamak için kullanabileceğiniz basit bir yöntemdir.

DATEDIFF fonksiyonu diğer bazı MySQL fonksiyonlarıyla birlikte kullanılabilir. Örneğin, DATEDIFF fonksiyonu ile YEAR_TO_MONTH fonksiyonunu birleştirerek belirli zaman aralıklarını hesaplayabilirsiniz. Bu fonksiyonlar, hesaplamalar yaparken oldukça faydalıdır ve zaman tasarrufu sağlar. DATEDIFF fonksiyonu, tarihlerle çalışırken en sık kullanılan fonksiyonlardan biridir.


Toplama İşlemi

MySQL'de tarih aralıklarını toplamak için DATE_ADD () fonksiyonu kullanılır. Bu fonksiyon, belirtilen tarihe istenilen sayıda yıl, ay, gün, saat, dakika ve saniye ekler. DATE_ADD () fonksiyonunun genel formülü şu şekildedir: DATE_ADD (date, INTERVAL value unit). Bu formülde, date belirtilen tarih, value ise eklemek istediğiniz sayı ve unit, eklemek istediğiniz zaman birimidir.

Örneğin, 10 Eylül 2010 tarihine 3 yıl, 5 ay, 2 gün, 3 saat, 10 dakika ve 30 saniye eklemek için aşağıdaki kod kullanılabilir:

SELECT DATE_ADD('2010-09-10 00:00:00', INTERVAL '3-5-2 03:10:30' DAY_SECOND);

Bu işlem sonucunda, 10 Eylül 2010 tarihine 3 yıl, 5 ay, 2 gün, 3 saat, 10 dakika ve 30 saniye eklenerek 12 Şubat 2014 03:10:30 tarihi oluşur.

DATE_ADD () fonksiyonu ile birlikte kullanabileceğiniz bir diğer fonksiyon da TIMESTAMPADD () fonksiyonudur. TIMESTAMPADD () fonksiyonu, belirlenen tarihe belirttiğiniz sayıda birimi ekler. Bu fonksiyonun genel formülü şu şekildedir: TIMESTAMPADD (unit, value, date). Bu formülde, unit eklemek istediğiniz zaman birimi, value eklemek istediğiniz sayı ve date belirtilen tarih.

Örneğin, 10 Eylül 2010 tarihine 3 yıl, 5 ay, 2 gün, 3 saat, 10 dakika ve 30 saniye eklemek için aşağıdaki kod kullanılabilir:

SELECT TIMESTAMPADD(YEAR_MONTH_DAY_HOUR_MINUTE_SECOND, '3-5-2 03:10:30', '2010-09-10 00:00:00');

Bu işlem sonucunda, 10 Eylül 2010 tarihine 3 yıl, 5 ay, 2 gün, 3 saat, 10 dakika ve 30 saniye eklenerek 12 Şubat 2014 03:10:30 tarihi oluşur.

Tarihler arasındaki farkları bulmak için kullanabileceğiniz DATE_DIFF () fonksiyonunu, tarihleri toplama işlemi için kullanabileceğiniz DATE_ADD () fonksiyonunu ve TIMESTAMPADD () fonksiyonunu öğrendik. Bu fonksiyonlar, tarih ve zaman manipülasyonunda oldukça yararlıdır ve MySQL veritabanında bulunan en önemli fonksiyonlardan bazılarıdır.


DATE_ADD Fonksiyonu

DATE_ADD fonksiyonu, belirli bir tarihe gün, ay veya yıl eklemek veya çıkarmak için kullanılır. Fonksiyon, belirli tarih ve değerler üzerinde işlem yaparak yeni bir tarih oluşturur. Fonksiyonun genel kullanım şekli aşağıdaki gibidir:

DATE_ADD(tarih, INTERVAL değer birim)

Bu fonksiyon, ilk olarak hangi tarihe işlem yapılacağını ve ne kadar değer ekleneceğini veya çıkarılacağını belirtir. Değer birimleri olarak kullanılabilecek seçenekler ise 'DAY', 'WEEK', 'MONTH', 'QUARTER' ve 'YEAR' olarak belirlenmiştir. Bu fonksiyonu kullanarak bir kiralama tarihine belli bir süre eklemek veya çıkarmak mümkündür.

Örnek olarak, bugünkü tarihe 1 ay eklemek istediğimizde DATE_ADD fonksiyonunu şu şekilde kullanabiliriz:

SELECT DATE_ADD(NOW(), INTERVAL 1 MONTH);

Bu sorgu, bugünkü tarihe 1 ay ekleyerek yeni bir tarih değeri döndürecektir. Benzer şekilde, bir yıl sonrasındaki tarihi hesaplamak için de şu sorgu kullanılabilir:

SELECT DATE_ADD(NOW(), INTERVAL 1 YEAR);

Bu sorgu, bugünün tarihine 1 yıl ekleyerek gelecek yılın tarihini döndürecektir.

DATE_ADD fonksiyonu sayesinde tarih işlemleri çok daha kolay hale gelmektedir. Bu fonksiyonun yanı sıra DATE_SUB fonksiyonu da benzer şekilde kullanılabilmektedir. DATE_SUB fonksiyonu, belirli bir tarihten gün, ay veya yıl çıkarmak için kullanılır.


Tarihlerin Toplamı İşlemi

MySQL'de tarihlerin toplamı yapılabilir. Bu işlem için kullanılan fonksiyonlar DATE_ADD ve DATE_SUB'dır. DATE_ADD fonksiyonu kullanarak tarihlerin toplamını yapabilirsiniz. Fonksiyonun kullanımı şu şekildedir:

  • DATE_ADD(tarih, INTERVAL ifade birimi)

Interavl ifade birimi yıl, ay, gün, saat, dakika ve saniye gibi tarih öğelerini ifade edebilir. Örnek olarak, 3 gün eklemek için kullanılan kod aşağıdaki gibidir:

  • DATE_ADD('2021-08-10', INTERVAL 3 DAY)

Yukarıdaki örnekte, '2021-08-10' tarihine 3 gün (DAY) ekleyerek, '2021-08-13' tarihini elde edeceğiz.

DATE_SUB fonksiyonu kullanarak da tarihlere çıkarma işlemi yapabilirsiniz. Fonksiyonun kullanımı DATE_ADD fonksiyonu ile benzerdir, ancak negatif bir değerle kullanılır. Örneğin, 3 gün çıkarmak için kullanılan kod aşağıdaki gibidir:

  • DATE_SUB('2021-08-10', INTERVAL 3 DAY)

Yukarıdaki örnekte, '2021-08-10' tarihinden 3 gün (DAY) çıkartarak, '2021-08-07' tarihini elde edeceğiz.

Tarihlerin toplamı işlemi yaparken, gün sayısından daha büyük bir işlem yaparsanız, tarihler de otomatik olarak hesaba katılır. Örneğin, 1 ay eklemek yerine, 30 gün eklersek, işlem sonucunda ay sayısı artar, ancak eklenen gün sayısı görüntülenmez.

Bu şekilde, MySQL'de tarihlerin toplamı işlemi yapabilirsiniz. Bu işlem yapılırken, fonksiyonların doğru kullanımı ve interval ifade birimleri dikkate alınarak yapılmalıdır.


Tarih Formatları

Tarih formatları, MySQL'de tarihlerin görüntülenme şeklini ifade eder. Bu bölümde, tarih formatlarının ne olduğu, nasıl kullanılabileceği ve niçin önemli olduğu hakkında bilgi vereceğiz.

MySQL'de sıklıkla kullanılan tarih formatları aşağıdaki gibidir:

  • %d: Gün (01-31)
  • %m: Ay (01-12)
  • %Y: Yıl (0000-9999)
  • %y: Yıl (00-99)
  • %H: Saat (00-23)
  • %i: Dakika (00-59)
  • %s: Saniye (00-59)

Bu formatlar, DATE_FORMAT, STR_TO_DATE gibi fonksiyonlarla kullanılabilir. Örneğin, DATE_FORMAT fonksiyonu kullanılarak bir tarihin farklı bir formatta görüntülenmesi sağlanabilir:

Tarih Formatlanmış Tarih
2022-07-15 15/07/2022
1999-12-31 31.12.1999

STR_TO_DATE fonksiyonu ise, bir tarihin belirli bir formatla belirtilmesini sağlar. Örneğin, "15/07/2022" şeklindeki bir tarihin MySQL'de kullanılabilir hale getirilmesi için STR_TO_DATE fonksiyonu kullanılabilir:

Formatlı Tarih Tarih
15/07/2022 2022-07-15
31.12.1999 1999-12-31

Tarih formatlama, tarihleri anlaşılır hale getirerek okuyucunun istenen bilgiyi daha kolay anlamasını sağlar. MySQL'in sunduğu DATE_FORMAT ve STR_TO_DATE fonksiyonları, tarih formatlarına kolaylıkla uygun bir şekilde ayarlanarak işlemlerin gerçekleştirilmesini mümkün kılar.


DATE_FORMAT Fonksiyonu

MySQL'de tarih ve zaman işlemleri hakkında bilgi sahibi olmak, verilerinizin daha rahat bir şekilde işlenmesine olanak sağlar. Bu doğrultuda, DATE_FORMAT fonksiyonu tarih formatlarını değiştirmek için sıklıkla kullanılan bir yöntemdir. Bu fonksiyon kullanılarak tarih verileri özelleştirilebilir.

Örneğin, DATE_FORMAT fonksiyonunu kullanarak '2011-01-01' tarih verisini '01/01/2011' şeklinde gösterebilirsiniz. Kullanımı oldukça basittir. İlk olarak fonksiyonun neye uygulanacağını, sonrasında ise yeni formatlama şeklini belirleyen parametreler girilir. Fonksiyonun kullanımı şu şekildedir:

DATE_FORMAT(date, format)

'date' parametresi, tarih verisinin bulunduğu sütunu belirtirken 'format' parametresi yeni formatlama türünü belirtir. DATE_FORMAT fonksiyonu için kullanılabilecek bazı formatlama seçenekleri şunlardır:

Formatlama Karakteri Açıklaması
%a 3 harfli gün ismi
%b 3 harfli ay ismi
%c Ayın numarası
%d Ayın günü
%Y 4 haneli yıl
%y 2 haneli yıl

Örneğin, '2011-01-01' tarih verisini '01/01/11' şeklinde göstermek için DATE_FORMAT fonksiyonunu şu şekilde kullanabilirsiniz:

  • SELECT DATE_FORMAT('2011-01-01', '%m/%d/%y');

Bu kod, '01/01/11' şeklinde bir çıktı üretecektir.

DATE_FORMAT fonksiyonu kullanarak farklı formatlama seçenekleriyle tarih verilerini özelleştirebilirsiniz. Bu fonksiyon sayesinde tarih verilerinizin okunması daha kolay olacak ve işlemleriniz hızlanacaktır.


STR_TO_DATE Fonksiyonu

MySQL'de tarih ve zaman işlemleri yaparken bazen tarih formatını değiştirmek gerekebilir. Bu işlem için kullanabileceğimiz bir fonksiyon da STR_TO_DATE fonksiyonudur. Bu fonksiyonun kullanımını ve örneklerini aşağıda inceleyebilirsiniz:

Fonksiyon Açıklama
STR_TO_DATE(date, format) Verilen tarih formatına göre bir tarih verisini çözümler.
  • date: çözümlenecek tarih verisi (string)
  • format: date parametresinin hangi formata göre olduğunu belirtir (string)

Örnek olarak, "22/05/2021" şeklinde bir tarih verisini "2021-05-22" formatına dönüştürmek için aşağıdaki sorguyu kullanabilirsiniz:

SELECT STR_TO_DATE('22/05/2021', '%d/%m/%Y');

Bu sorgu sonucunda, çıktı olarak "2021-05-22" tarihi elde edilir.

STR_TO_DATE fonksiyonu, farklı tarih formatlarına göre tarih verilerini çözebilir. Örneğin, "May 22 2021" şeklinde bir tarih verisi için aşağıdaki sorguyu kullanabilirsiniz:

SELECT STR_TO_DATE('May 22 2021', '%M %d %Y');

Bu sorgu sonucunda, çıktı olarak "2021-05-22" tarihi elde edilir.

STR_TO_DATE fonksiyonu, tarih verilerinin yanı sıra saat ve zaman verilerini de çözebilir. Örneğin, "22/05/2021 14:30:45" şeklinde bir tarih ve zaman verisi için aşağıdaki sorguyu kullanabilirsiniz:

SELECT STR_TO_DATE('22/05/2021 14:30:45', '%d/%m/%Y %H:%i:%s');

Bu sorgu sonucunda, çıktı olarak "2021-05-22 14:30:45" tarihi ve zamanı elde edilir.

Yukarıdaki örneklerde görüldüğü gibi, STR_TO_DATE fonksiyonu, farklı tarih, saat ve zaman formatlarını kolayca çözebilmemize olanak sağlar. Bu nedenle MySQL'de tarih ve zaman işlemleri yaparken bu fonksiyonu sıklıkla kullanabilirsiniz.


Tarih Karşılaştırma

Tarihlerin karşılaştırılması işlemi, tarihleri sıralamak veya belirli tarihler arasında karşılaştırma yapmak için gereklidir. MySQL'de tarihleri karşılaştırmak için " =, <>, <, <=, >, >= " karşılaştırma operatörleri kullanılır. Bu operatörler " WHERE " veya " HAVING " ifadelerinde kullanılabilir. Tarihler, tarih karşılaştırmada kullanılabilir.

Bir veritabanında saklanan tarih değeri, depolama biçimi nedeniyle bir karakter dizisi olarak ele alınır, bu nedenle tarihlerin karşılaştırılması, karakter dizilerinin karşılaştırılması ile aynı şekilde gerçekleştirilir. Ancak, tarihlerin doğru bir şekilde karşılaştırılabilmesi için biraz dikkat göstermeniz gerekmektedir. Örneğin, tarihlerin "YYYY-MM-DD" formatında depolanıp depolanmadığına dikkat etmek önemlidir. Bunun yanı sıra, bir tarihin daha büyük olup olmadığını karşılaştırmak için " > " ve " < " operatörlerini kullanabilirsiniz.

  • Örnek 1: Tarihlerin karşılaştırılması
  • Tarih 1 Tarih 2 Sonuç
    2021-05-01 2021-05-02 Tarih 1 < Tarih 2
    2021-05-02 2021-05-01 Tarih 1 > Tarih 2
    2021-05-01 2021-05-01 Tarih 1 = Tarih 2
  • Örnek 2: Tarih ve zaman karşılaştırması
  • Tarih/Zaman 1 Tarih/Zaman 2 Sonuç
    2021-05-01 15:00:00 2021-05-01 12:00:00 Tarih/Zaman 1 > Tarih/Zaman 2
    2021-05-01 15:00:00 2021-05-01 15:00:01 Tarih/Zaman 1 < Tarih/Zaman 2

Tarih karşılaştırma işlemlerinde dikkat etmeniz gereken noktalar bunlarla sınırlı değildir, ancak bu örnekler size karşılaştırma işlemlerinin nasıl gerçekleştirileceği hakkında bir fikir verebilir. Tarihleri doğru bir şekilde karşılaştırabilmek için tarihlerin doğru bir şekilde formatlandığından emin olmanız ve tarih karşılaştırma işlemleri sırasında kullanılan operatörleri doğru bir şekilde anlamanız gerekmektedir.


Zaman İşlemleri

MySQL'de zaman işlemleri, zaman aralıklarının hesaplanması, saat dilimleri ve zaman formatlarının değiştirilmesi konularını ele almaktadır. Zaman aralıklarının hesaplanmasında genellikle TIME veri tipi kullanılmaktadır. TIME veri tipi, 'saat:dakika:saniye' biçiminde tutulan bir zaman dilimini ifade eder.

Zaman aralıklarının hesaplanmasında TIME_TO_SEC ve SEC_TO_TIME fonksiyonları kullanılır. TIME_TO_SEC fonksiyonu, TIME veri tipindeki bir zaman dilimini saniyeye çevirirken, SEC_TO_TIME fonksiyonu saniyeleri 'saat:dakika:saniye' biçiminde ifade eden TIME veri tipine dönüştürür.

Saat dilimleri hakkında bilgi verilirken, UTC (koordinatlı evrensel zaman) ve yerel saat kavramları açıklanır. İşlemlerde UTC zaman dilimi kullanıldığında, kodlar farklı saat dilimleri arasında çalıştığında sorun yaşanmaz. MySQL, CONVERT_TZ fonksiyonu ile farklı saat dilimlerine dönüştürme işlemleri yapılabilir.

Zaman formatları, zaman dilimini istenilen formata dönüştürmek için kullanılabilecek fonksiyonlar aracılığıyla değiştirilebilir. MySQL'de DATE_FORMAT ve STR_TO_DATE fonksiyonları, tarih ve zaman bilgilerinin farklı biçimlerde gösterilmesi veya farklı biçimlerden ayrıştırılması için kullanılır.


Zaman Aralıklarının Hesaplanması

Zaman aralıkları, saat dilimleri ve zaman formatlarının değiştirilmesi konularında kullanabileceğiniz birçok fonksiyon vardır. Zaman aralıkları arasındaki farkları hesaplayarak zaman tablolarında yapılan hesaplamaların doğru sonuç vermesi sağlanır. Bunun için aşağıdaki fonksiyonlar kullanılabilir:

  • TIME_TO_SEC: Bu fonksiyon, verilen zaman dilimini saniyeye dönüştürür ve saniye olarak değeri döndürür. Örneğin:
Zaman Dilimi Saniye Karşılığı
00:01:00 60
01:00:00 3600
02:30:30 9030
  • SEC_TO_TIME: Bu fonksiyon, verilen saniye cinsinden zamanı, zaman dilimi formatına çevirir. Örneğin:
Saniye Karşılığı Zaman Dilimi
60 00:01:00
3600 01:00:00
9030 02:30:30

Zaman aralıklarının hesaplanması işleminde ise aşağıdaki fonksiyonlar kullanılabilir:

  • TIMESTAMPDIFF: Bu fonksiyon, iki tarih arasındaki farkı belirli bir birim cinsinden hesaplar ve sonucu döndürür. Örneğin:
Farkın Hesaplanması Türü Örnek Sonuç
MINUTE TIMESTAMPDIFF(MINUTE,'2021-11-01 12:10:00','2021-11-01 12:20:00') 10
HOUR TIMESTAMPDIFF(HOUR,'2021-11-01 13:00:00','2021-11-01 15:00:00') 2
DAY TIMESTAMPDIFF(DAY,'2021-11-01 08:00:00','2021-11-03 17:00:00') 2
  • DATEDIFF: Bu fonksiyon, iki tarih arasındaki gün farkını hesaplar ve sonucu döndürür. Örneğin:
Tarihler Farkın Hesaplanması Sonuç
2021-10-15 DATEDIFF('2021-11-01','2021-10-15') 17
2021-10-15 DATEDIFF('2021-11-15','2021-10-15') 31

Zaman aralıklarının hesaplanması işlemlerinde bu fonksiyonlar kullanılarak, doğru sonuçlar elde edilebilir.


TIME_TO_SEC Fonksiyonu

MySQL'de zaman işlemleri, veritabanında kaydedilen zaman aralıklarının hesaplanmasına ve manipüle edilmesine olanak tanır. TIME_TO_SEC fonksiyonu, zaman aralığını saniyeye çevirmek için kullanılır. Bu fonksiyon, özellikle toplam çalışma sürelerinin hesaplanması gibi işlemlerde oldukça yararlıdır.

TIME_TO_SEC fonksiyonunun kullanımı oldukça basittir. Fonksiyonun kullanımı için sadece bir parametreye ihtiyaç vardır: zaman aralığı. Zaman aralığı, 'SS' formatında olmalıdır.

Örneğin, 1 saat 30 dakika 20 saniyeyi saniyeye çevirebilmek için aşağıdaki kod kullanılabilir:

Zaman Aralığı Çıktı
'01:30:20' 5420

Yukarıdaki örnekte, '01:30:20' zaman aralığı fonksiyona parametre olarak verilir. Fonksiyon, bu zaman aralığını toplam 5420 saniyeye çevirir.

Bir zaman aralığındaki sadece bir parçasını saniyeye çevirmek istiyorsanız, TIME_TO_SEC fonksiyonu yerine HOUR_TO_SEC, MINUTE_TO_SEC veya SECOND fonksiyonlarını kullanabilirsiniz.

  • HOUR_TO_SEC: Saati saniyeye çevirir.
  • MINUTE_TO_SEC: Dakikayı saniyeye çevirir.
  • SECOND: Saniyeleri saniyeye çevirir.

MySQL'de zaman işlemleri, verilerin doğru bir şekilde işlenmesi için oldukça önemlidir. TIME_TO_SEC fonksiyonu gibi fonksiyonlar, verilerin yönetiminde oldukça kullanışlıdır. Bu fonksiyonun kullanımını öğrenerek, zaman aralıklarının saniyeye çevrilmesi işlemini basit ve kolay bir şekilde gerçekleştirebilirsiniz.


SEC_TO_TIME Fonksiyonu

MySQL'de zaman işlemleri yaparken sıklıkla kullanacağınız bir fonksiyon olan SEC_TO_TIME, saniye cinsinden verilen bir zaman dilimini 'saat:dakika:saniye' formatında göstermenizi sağlar. Fonksiyonun kullanımı oldukça basittir, önce saniye cinsinden bir zaman dilimi belirleyin, ardından SEC_TO_TIME fonksiyonuna bu değeri verin.

Örneğin, eğer 126 saniyelik bir zaman dilimini 'saat:dakika:saniye' formatında göstermek isterseniz, SEC_TO_TIME(126) şeklinde bir sorgu yazmanız yeterlidir. Bu sorgu sonucunda '00:02:06' değeri dönecektir.


Saat Dilimleri

Saat dilimleri, coğrafi konumlar nedeniyle dünya üzerinde farklılık gösterir. MySQL, saat dilimlerini hesaplama ve yönetme konusunda oldukça esnektir. İşlemleri yapmak için kullandığınız tarih ve saatin hangi saat dilimine ait olduğunu bilmek önemlidir.

Saat dilimleri genellikle üç harfli kısaltmalarla ifade edilir. Örneğin, Türkiye'nin saat dilimi UTC +3'tür ve Tarih Dilimi adıyla belirtilir. Saat dilimleriyle ilgili işlemler yaparken, ilk olarak tarih dilimi ayarlanmalıdır. Bunun için, SET @@time_zone komutunu kullanabilirsiniz.

Saat Dilimi Kısaltma
Türkiye Tarih Dilimi '+03:00'
Greenwich Ortalama Saati '+00:00'
Amerika Birleşik Devletleri Doğu Zaman Dilimi '-04:00'

Ayarlama işleminden sonra, tarih ve saat değeri veritabanında kaydedildiği zaman otomatik olarak ilgili saat dilimine çevrilir.

MySQL, tarih ve saat değerlerini UTC olarak depolar. Bu, farklı saat dilimlerindeki kullanıcılar arasında verinin aynı şekilde görüntülenmesini sağlar. Verilerin gösterilmesi için kullanılan format, her kullanıcının saat dilimine göre ayarlanır.


Zaman Formatları

Zaman formatları belirlenmiş bir formatta göstermek için oldukça önemlidir. Bu sayede verilerin okunması, karşılaştırılması ve anlamlandırılması kolaylaşır. MySQL'de zaman formatları için birçok fonksiyon kullanılabilir. İşte, istenilen formatta zamanı dönüştürmek için kullanılabilecek bazı fonksiyonların örnekleri:

Fonksiyon Açıklama Örnek
DATE_FORMAT() Tarihi belirli bir formatta gösterir. SELECT DATE_FORMAT('2021-05-12', '%d/%m/%Y');
TIME_FORMAT() Zamanı belirli bir formatta gösterir. SELECT TIME_FORMAT('12:30:45', '%h saat %i dakika %s saniye');
STR_TO_DATE() Belirli bir formatı olan tarihi MySQL tarih tipine dönüştürür. SELECT STR_TO_DATE('12/05/2021', '%d/%m/%Y');

Yukarıdaki örneklerde, fonksiyonlar parametre olarak ilk olarak işlenecek tarih ya da zaman değerini, ikinci olarak ise hangi formatta gösterileceğini alır. Fonksiyonlar sonucunu istenilen formata dönüştürerek geri döndürür.

Ayrıca, zaman formatlama işlemleri ile birlikte bazı kontrol ifadeleri de kullanılabilir. Bu ifadeler, belirli bir tarihin ya da zamanın belirli bir zaman aralığında olduğunu kontrol etmek için kullanılır. Bunlar arasında son kullanma tarihleri, tarih aralıkları ve zaman aralıkları kontrolü gibi işlemler yer alır.

MySQL'de zaman formatı işlemleri oldukça esnek ve kullanışlıdır. Verileri uygun bir formatta sunmak, anlamak ve kullanmak için bu fonksiyonları iyi bir şekilde öğrenmek faydalı olacaktır.