logo

MySQL Tarih ve Saat İşlevleri

Taşıma tarih ve saat MySQL'deki veriler, özellikle zaman damgalarının yönetilmesi, görevlerin planlanması veya zamana dayalı olarak oluşturulması söz konusu olduğunda birçok veritabanı işlemi için gereklidir. MySQL, kullanıcıların tarih değerleriyle çalışmasına, hesaplamalar yapmasına ve bunları gerektiği gibi biçimlendirmesine yardımcı olan çeşitli tarih ve saat işlevleri sağlar.

Bu işlevler, geliştiricilerin hesaplamalar yapmasına, tarihin belirli bölümlerini çıkarmasına ve hatta daha iyi okunabilirlik için çıktıyı biçimlendirmesine olanak tanır. Bu makalede en sık kullanılan MySQL tarih işlevlerini inceleyeceğiz, sözdizimlerini açıklayacağız, örnekler sunacağız ve bunları nasıl etkili bir şekilde kullanacağınız konusunda size yol göstereceğiz.

döngü java'sı için

MySQL Tarih ve Saat Veri Türlerini Anlamak

MySQL'de tarihlerle çalışırken, özellikle veritabanındaki tarihin formatının ekleme sırasında giriş verilerinin formatıyla eşleşmesi gerektiğinden, yeni başlayanlar için zor olabilir. Çoğu durumda, yalnızca basit bir tarih kullanmak yerine, kullanım durumuna bağlı olarak hem tarihi hem de saati saklamamız gerekebilir. Burası DATETIME Ve TIMESTAMP veri türleri devreye giriyor.



MySQL, tarih ve saat değerlerini depolamak için aşağıdaki veri türlerini sağlar:

1. TARİH :

  • Biçim :YYYY-MM-DD
  • Herhangi bir zaman bileşeni olmadan yalnızca tarihi (yıl, ay ve gün) depolamak için kullanılır.

2. DATETIME :

  • Biçim :YYYY-MM-DD HH:MM:SS
  • Hem tarihi hem de saati saklayarak, tarihle birlikte belirli saatleri yakalamanız gerektiğinde kullanışlı olur.

3. ZAMAN DAMGASI :

  • Biçim :YYYY-MM-DD HH:MM:SS
  • benzerDATETIMEAncakTIMESTAMPsaat dilimi desteğini de içerir. Bir kayıt değiştirildiğinde otomatik olarak geçerli zaman damgasına güncellenir; bu da onu zaman içinde kayıtlarda yapılan değişiklikleri izlemek için ideal kılar.

4. YIL :

  • Biçim :YYYYveyaYY
  • Doğum yıllarını veya mali yılları takip etmek gibi yalnızca yılın gerekli olduğu uygulamalar için yararlı olabilecek yalnızca yılı depolamak için kullanılır.

MySQL Tarih ve Saat İşlevleri

Şimdi tarih ve saat verilerini etkili bir şekilde işlemek ve sorgulamak için kullanabileceğiniz MySQL tarih işlevlerine bakalım.

1. ŞİMDİ()- Güncel Tarih ve Saati Al

ŞİMDİ() işlev geçerli tarih ve saati alır YYYY-AA-GG SS:MI:SS biçimi.

Sorgu:

SELECT NOW();  

Çıkış:

şimdi yöntem çıktı görüntüsü' title=

2.CURDATE() - Yalnızca Güncel Tarihi Al

Kullanabileceğimiz zaman bölümü olmadan yalnızca geçerli tarihe ihtiyacımız varsa CURDATE() hangi tarih döndürür YYYY-MM-DD biçimi.

Sorgu:

SELECT CURDATE();  

Çıkış: 

ÇIKIŞ2' loading='lazy' title=

3. CURTIME() - Yalnızca Güncel Saati Al

CURTIME() fonksiyonu geçerli saati döndürür. SS:MI:SS tarih hariç format.

Sorgu:

SELECT CURTIME();  

Çıkış: 

ÇIKIŞ3' loading='lazy' title=

4. DATE() - DATETIME Değerinden Tarih Kısmını Çıkarın

DATE()işlev bir dosyanın yalnızca tarih kısmını çıkarırDATETIMEveyaTIMESTAMPzamanı göz ardı eden değer.

Örnek: adlı bir tablo için users :

İD İsim Doğum Zamanı
4120Pratik1996-09-26 16:44:15.581

Sorgu:

SELECT Name DATE(BirthTime)   
AS BirthDate FROM Test;

Çıkış:

İsim Doğum Tarihi
Pratik1996-09-26

5. EXTRACT() - Belirli Tarih Bölümlerini Çıkart

EXTRACT()gün, ay veya yıl gibi bir tarihin belirli bölümlerini çıkarmak için kullanılır. Bu işlev, bir tarihin farklı bölümlerini analiz ederken veya karşılaştırırken özellikle yararlı olabilir. Birkaç birim dikkate alınabilir ancak yalnızca bazıları kullanılır: MİKROSANİYE İKİNCİ DAKİKA SAAT GÜN HAFTA AY ÇEYREK YIL vb. Ve 'tarih' geçerli bir tarih ifadesidir.

Sözdizimi:

EXTRACT(birim FROM tarih);

Gün Çıkarma Sorgusu:

SELECT Name Extract(DAY FROM   
BirthTime) AS BirthDay FROM Test;

Çıkış: 

İsim Doğum günü
Pratik26

Yıl Çıkarma Sorgusu:

SELECT Name Extract(YEAR FROM BirthTime)  
AS BirthYear FROM Test;

Çıkış: 

İsim Doğum Yılı
Pratik1996

Saniye Çıkarma Sorgusu:

SELECT Name Extract(SECOND FROM   
BirthTime) AS BirthSecond FROM Test;

Çıkış:

İsim Doğumİkinci
Pratik581

6. DATE_ADD() - Tarihe Aralık Ekleme

DATE_ADD() işlevi bir tarihe veya tarihe zaman aralıkları (örneğin gün ay yıl) eklemenizi sağlar.DATETIMEdeğer.

Sözdizimi:

DATE_ADD(tarih INTERVAL ifade türü);

Örnek: Aşağıdaki 'adlı tablo için Test '

İD İsim Doğum Zamanı
4120Pratik1996-09-26 16:44:15.581

Sorgula Bir Tarihe 1 Yıl Ekleme

SELECT Name DATE_ADD(BirthTime INTERVAL   
1 YEAR) AS BirthTimeModified FROM Test;

Çıkış:

İsim Doğum ZamanıDeğiştirildi
Pratik1997-09-26 16:44:15.581

Tarihe 30 gün ekleme sorgusu

SELECT Name DATE_ADD(BirthTime   
INTERVAL 30 DAY) AS BirthDayModified FROM Test;

Çıkış:

İsim Doğum GünüDeğiştirildi
Pratik1996-10-26 16:44:15.581

Tarihe 4 Saat Ekleme Sorgusu

SELECT Name DATE_ADD(BirthTime INTERVAL  
4 HOUR) AS BirthHourModified FROM Test;

Çıkış: 

İsim Doğumİkinci
Pratik1996-10-26 20:44:15.581

7. DATEDIFF() – İki Tarih Arasındaki Farkı Bulun

Bu İşlev, iki tarih arasındaki gün sayısını döndürür. 

Sözdizimi:

DATEDIFF(aralıktarih1 tarih2);

aralık - dakika/saat/ay/yıl vb.

tarih1 ve tarih2- tarih/saat ifadesi

Sorgula İki Tarih Arasındaki Farkı Bulun

SELECT DATEDIFF(day '2017-01-13' '2017-01-03') AS DateDiff;  

Çıkış: 

Tarih Farkı

8. DATE_FORMAT() - Tarih ve Saati Biçimlendir

DATE_FORMAT() bir biçimi biçimlendirmemizi sağlar. TARİH DATETIME veya ZAMAN DAMGASI yer tutucuları kullanarak değeri özel bir formata dönüştürün.

Sözdizimi:

DATE_FORMAT(tarih biçimi);

tarih geçerli bir tarihtir ve format, tarih/saat için çıktı formatını belirtir. Kullanılabilecek formatlar şunlardır:

  • %a-Kısaltılmış hafta içi adı (Paz-Cumartesi)
  • %b-Kısaltılmış ay adı (Ocak-Aralık)
  • %c-Ay sayısal (0-12)
  • %D-Ayın İngilizce son ekiyle günü (0. 1. 2. 3.)
  • %d-Ayın günü sayısal (00-31)
  • %e-Ayın günü sayısal (0-31)
  • %f-Mikrosaniye (000000-999999)
  • %H-Saat (00-23)
  • %h-Saat (01-12)
  • %I-Saat (01-12)
  • %i-Dakika sayısal (00-59)
  • %j-Yılın günü (001-366)
  • %k-Saat (0-23)
  • %l-Saat (1-12)
  • %A-Ay adı (Ocak-Aralık)
  • %m-Ay sayısal (00-12)
  • %p-AM veya PM
  • %r-Zaman 12 saat (ss:dd: ss ve ardından AM veya PM)
  • %S-Saniye (00-59)
  • %s-Saniye (00-59)
  • %T-Zaman 24 saat (ss:dd: ss)
  • %U-Week (00-53) burada Pazar haftanın ilk günüdür
  • %u-Hafta (00-53) burada Pazartesi haftanın ilk günüdür
  • %V-Hafta (01-53) burada %X ile kullanılan haftanın ilk günü Pazar'dır
  • %v-Hafta (01-53) burada Pazartesi, %x ile kullanılan haftanın ilk günüdür
  • %W-Hafta içi adı (Pazar-Cumartesi)
  • %w-Haftanın günü (0=Pazar 6=Cumartesi)
  • Pazarın haftanın ilk günü olduğu hafta için %X-Yıl %V ile birlikte kullanılan dört hane
  • %x-Pazartesi'nin haftanın ilk günü olduğu hafta için yıl, %v ile birlikte kullanılan dört hane
  • %Y-Yıl sayısal dört haneli
  • %y-Yıl sayısal iki haneli

Tarih Biçimlendirme Sorgusu

SELECT DATE_FORMAT('2025-04-10 12:34:56' '%W %M %d %Y') AS formatted_date;

Çıkış:

Biçimlendirilmiş_tarih
Perşembe 10 Nisan 2025

MySQL'de Tarih ve Saatle Çalışmak İçin En İyi Uygulamalar

1. Daima Uygun Tarih Formatlarını Kullanın

Tarihleri ​​eklerken veya güncellerken MySQL'in beklenen formatlarına uyduğunuzdan emin olun (YYYY-MM-DD YYYY-MM-DD HH:MI:SS). Bu, sorgularınızın beklenen sonuçları hatasız olarak döndürmesini sağlar.

2. TIMESTAMP ile Saat Dilimiyle İlgili Hususlar

SırasındaDATETIMEsaat dilimi bilgilerini saklamazTIMESTAMPyapmak. Uygulamanız saat dilimine duyarlıysa (örneğin uluslararası uygulamalarda) şunu kullanmayı düşünün:TIMESTAMPfarklı saat dilimlerini hesaba katması gereken tarih-saat alanları için.

3. Sorgularda Tarih Aralıklarını İşleme

Verileri tarih aralıklarına göre filtrelemek için (örneğin, belirli bir ay veya yıla ait tüm kayıtları almak), uygun tarih karşılaştırmalarını kullandığınızdan emin olun.WHEREcümle. Örnek:

SELECT * FROM orders  
WHERE order_date BETWEEN '2025-01-01' AND '2025-01-31';

4. Performansla İlgili Hususlar

Özellikle büyük veri kümelerinde tarih ve saat işlevleriyle çalışırken performans üzerindeki etkiye dikkat edin. Gibi işlevleri kullanmaktan kaçınınNOW()veyaCURDATE()içindeWHEREBüyük tablolarla uğraşırken sorguları yavaşlatabilecekleri için yan tümceyi kullanın.

Çözüm

MySQL'in tarih ve saat işlevleri için temel araçlardır elleçleme Ve manipüle etmek veritabanlarınızdaki geçici veriler. Gibi işlevlerde uzmanlaşarakNOW() CURDATE() DATE_ADD() DATEDIFF()VeDATE_FORMAT()kolayca çalışabilirsiniz zamana dayalı hesaplamalar karşılaştırmalar Ve formatlar . Bu işlevleri etkili bir şekilde kullanmanın anahtarı, sözdizimlerini ne zaman ve nasıl kullanacaklarını ve büyük veri kümelerindeki performans sonuçlarını anlamaktır. Bu bilgiyle MySQL'de tarih ve saatle ilgili tüm ihtiyaçlarınız için daha verimli, doğru ve ölçeklenebilir sorgular oluşturabileceksiniz.

Test Oluştur