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 - benzer
DATETIMEAncakTIMESTAMPsaat 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ış:

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ış:

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ış:

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ı |
|---|---|---|
| 4120 | Pratik | 1996-09-26 16:44:15.581 |
Sorgu:
SELECT Name DATE(BirthTime)
AS BirthDate FROM Test;
Çıkış:
| İsim | Doğum Tarihi |
|---|---|
| Pratik | 1996-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ü |
|---|---|
| Pratik | 26 |
Yıl Çıkarma Sorgusu:
SELECT Name Extract(YEAR FROM BirthTime)
AS BirthYear FROM Test;
Çıkış:
| İsim | Doğum Yılı |
|---|---|
| Pratik | 1996 |
Saniye Çıkarma Sorgusu:
SELECT Name Extract(SECOND FROM
BirthTime) AS BirthSecond FROM Test;
Çıkış:
| İsim | Doğumİkinci |
|---|---|
| Pratik | 581 |
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ı |
|---|---|---|
| 4120 | Pratik | 1996-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 |
|---|---|
| Pratik | 1997-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 |
|---|---|
| Pratik | 1996-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 |
|---|---|
| Pratik | 1996-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.