MySQL tarih ve zaman fonksiyonları nasıl kullanılır? (DATE, TIME, DATETIME, NOW, CURDATE, CURTIME)

MySQL Veri Türleri

MySQL’de tarih ve zaman ile çalışmak için çeşitli veri türleri bulunmaktadır. Bu veri türleri arasında DATE, TIME, DATETIME, TIMESTAMP ve YEAR yer alır. Her biri özel kullanım senaryolarına ve veri depolama gereksinimlerine göre tasarlanmıştır. Örneğin, DATE veri türü sadece tarih bilgisini (YYYY-MM-DD) saklarken, TIME veri türü saat, dakika ve saniye bilgisini (HH:MM:SS) saklar. DATETIME ise tarih ve saat bilgisini bir arada (YYYY-MM-DD HH:MM:SS) saklayabilme özelliğine sahiptir.

Tarih Fonksiyonları

MySQL, tarih ve zaman verileri ile çalışmak için birçok yerleşik fonksiyon sunmaktadır. Bu fonksiyonlar, tarih ve zaman verilerini manipüle etmek, sorgular oluşturmak ve veri üzerinde hesaplamalar yapmak için kullanılır.

NOW() Fonksiyonu

NOW() fonksiyonu, mevcut tarih ve saati belirten bir DATETIME değerini döndürür. Bu fonksiyon genellikle kayıt oluşturma zamanının kaydedilmesi için kullanılır. Örneğin:

“`sql
SELECT NOW();
“`

Bu sorgu çalıştırıldığında sistemin mevcut tarih ve saat bilgisi dönecektir.

CURDATE() Fonksiyonu

CURDATE() fonksiyonu, güncel tarihi YYYY-MM-DD formatında döndürür. Bu fonksiyon kullanıcıların yalnızca tarih bilgisini almak istediklerinde oldukça yararlıdır. Örnek kullanım aşağıdaki gibidir:

“`sql
SELECT CURDATE();
“`

CURTIME() Fonksiyonu

CURTIME() fonksiyonu, güncel saat bilgisini HH:MM:SS formatında döndürür. Bu fonksiyon, yalnızca zaman bilgisine ihtiyaç duyulan durumlarda kullanılır. Örnek sorgu:

“`sql
SELECT CURTIME();
“`

DATE() Fonksiyonu

DATE() fonksiyonu, bir DATETIME değerinden yalnızca tarih bilgisini (YYYY-MM-DD) alır. Bu fonksiyonu şu şekilde kullanmak mümkündür:

“`sql
SELECT DATE(NOW());
“`

Bu sorgu, mevcut tarih bilgisini döndürecektir.

TIME() Fonksiyonu

TIME() fonksiyonu, bir DATETIME değerinden yalnızca zaman bilgisini (HH:MM:SS) almak için kullanılır. Aşağıdaki örnek, mevcut zaman bilgisini almak için bu fonksiyonu göstermektedir:

“`sql
SELECT TIME(NOW());
“`

DATE_FORMAT() Fonksiyonu

DATE_FORMAT() fonksiyonu, tarih değerini belirli bir biçimde döndürmeye olanak sağlar. Kullanım şekli aşağıdaki gibidir:

“`sql
SELECT DATE_FORMAT(NOW(), ‘%Y-%m-%d %H:%i:%s’);
“`

Bu sorgu, tarih ve saat bilgisini YYYY-MM-DD HH:MM:SS formatında döndürür. FORMAT belirteçleri, tarih ve saat üzerinde farklı biçimlendirmeler sağlar.

DATEDIFF() Fonksiyonu

DATEDIFF() fonksiyonu, iki tarih arasındaki farkı gün cinsinden döndürür. Kullanım şekli aşağıdaki gibidir:

“`sql
SELECT DATEDIFF(‘2023-10-31’, ‘2023-10-01’) AS difference;
“`

Bu sorgu, belirtilen iki tarih arasındaki gün sayısını hesaplar.

TIMESTAMPDIFF() Fonksiyonu

TIMESTAMPDIFF() fonksiyonu, iki tarih veya saat arasındaki farkı istenilen birimler cinsinden döndürür. Örnek:

“`sql
SELECT TIMESTAMPDIFF(HOUR, ‘2023-10-01 10:00:00’, NOW()) AS hours_difference;
“`

Bu sorgu, belirtilen tarih ile mevcut tarih arasındaki saat farkını döndürür.

ADDDATE() ve SUBDATE() Fonksiyonları

ADDDATE() fonksiyonu, belirtilen bir tarihe gün, ay veya yıl eklemek için kullanılır. Kullanım örneği:

“`sql
SELECT ADDDATE(‘2023-10-01’, INTERVAL 10 DAY) AS new_date;
“`

SUBDATE() fonksiyonu ise belirtilen bir tarihten gün, ay veya yıl çıkarmak için kullanılmaktadır:

“`sql
SELECT SUBDATE(‘2023-10-01’, INTERVAL 10 DAY) AS new_date;
“`

STR_TO_DATE() Fonksiyonu

STR_TO_DATE() fonksiyonu, bir tarih biçimini (string) DATE türüne dönüştürmek için kullanılır. Örnek:

“`sql
SELECT STR_TO_DATE(’31-12-2023′, ‘%d-%m-%Y’) AS converted_date;
“`

Bu sorgu, ’31-12-2023′ string değerini DATE türüne dönüştürerek döndürecektir.

UNIX_TIMESTAMP() ve FROM_UNIXTIME()

UNIX_TIMESTAMP() fonksiyonu, mevcut zamanı veya belirtilen bir tarihi UNIX zaman damgası olarak döndürür. Örnek:

“`sql
SELECT UNIX_TIMESTAMP();
“`

FROM_UNIXTIME() fonksiyonu ise bir UNIX zaman damgasını DATETIME formatına dönüştürmek için kullanılır:

“`sql
SELECT FROM_UNIXTIME(1696108800);
“`

Kıyaslama ve Sıralama

MySQL, tarih ve zaman değerlerini karşılaştırmak ve sıralamak için kullanılabilir. Örneğin, belirli bir tarihten sonra veya önceki kayıtları sorgulamak için:

“`sql
SELECT FROM tabloadi WHERE tarih_kolonu > ‘2023-10-01’;
“`

Bu sorgu, belirtilen tarihten sonra olan tüm kayıtları döndürecektir.

Dikkat Edilmesi Gerekenler

Tarih ve zaman fonksiyonları, farklı veri türleri ile çalışırken dikkatli olunması gereken önemli bir unsurdur. Ayrıca, yerel saat dilimlerine dikkat etmek de önemlidir. MySQL sunucusu zaman dilimi ayarlarına göre işlem yapar, bu nedenle bu ayarların doğru olduğundan emin olunmalıdır. Veritabanı tasarımında tarih ve zaman bilgilerinin saklanması, veri tutarlılığı ve etkin veri yönetimi açısından önemlidir.

CEVAP VER

Lütfen yorumunuzu giriniz!
Lütfen isminizi buraya giriniz

SON İÇERİKLER

İLGİNİZİ ÇEKEBİLİR