Bu derste SQL'de yerleşik olan bazı önemli tarih işlevlerini öğreneceğiz.
SQL'de tarih işlevleri:
- ŞİMDİ()
- CURDATE()
- KURTİME()
- TARİH()
- ÇIKARMAK()
- DATE_ADD()
- DATE_SUB()
- DATEDIFF()
- TARİH FORMATI()
Tarih fonksiyonlarının her birini örnekler yardımıyla tek tek detaylı olarak görelim. Sorgu yazma örneklerimizde MySQL veritabanını kullanacağız.
Aşağıdaki verileri içeren öğrenci tablosuna sahip olduğumuzu düşünün:
İD | İsim | DateTime_Birth | Şehir |
---|---|---|---|
1 | Mansi Şah | 2010-01-01 18:39:09 | Pune |
2 | Tejal Wagh | 2010-03-04 05:13:19 | Nasik |
3 | Sejal Kumari | 2010-05-01 10:31:07 | Mumbai |
4 | Sonal Jain | 2010-09-09 17:17:07 | Şimla |
5 | Surili Maheshwari | 2010-07-10 20:45:18 | Mektup |
Bazı örneklerde bu tabloyu kullanacağız.
1. ŞİMDİ():
SQL'deki NOW () işlevi mevcut sistemin tarih ve saatini verecektir.
Sözdizimi:
SELECT NOW ();
Örnek:
Mevcut sistemin tarih ve saatini görüntülemek için bir sorgu yazın.
Sorgu:
mysql> SELECT NOW () AS Current_Date_Time;
Burada sistemin güncel tarih ve saatini almak için NOW() fonksiyonu ile SELECT sorgusu yazdık. Current_Date_Time tarih ve saati saklamak için kullanılan bir takma addır.
Yukarıdaki sorguyu çalıştırdıktan sonra aşağıdaki çıktıyı aldık:
Geçerli_Tarih_Saat |
---|
2021-10-24 18:28:44 |
Sorgunun sistemde yürütüldüğü tarih ve saat 24buEkim 2021 ve 18:28:44. Bu nedenle çıktı olarak görüntülenir.
2.CURDATE()
SQL'deki CURDATE () işlevi mevcut sistemin tarihini verecektir.
java yöntemleri
Sözdizimi:
SELECT CURDATE ();
Örnek:
Mevcut sistemin tarihini görüntülemek için bir sorgu yazın.
Sorgu:
mysql> SELECT CURDATE () AS CurrentDate;
Burada sistemin güncel tarihini almak için CURDATE() fonksiyonu ile SELECT sorgusu yazdık. CurrentDate, tarihi saklamak için kullanılan bir takma addır.
Yukarıdaki sorguyu çalıştırdıktan sonra aşağıdaki çıktıyı aldık:
Geçerli tarih |
---|
2021-10-24 |
Sorgunun sistemde yürütüldüğü tarih 24buEkim 2021. Dolayısıyla çıktı olarak gösteriliyor.
3. KURTİME()
SQL'deki CURTIME () işlevi mevcut sistem saatini verecektir.
Sözdizimi:
SELECT CURTIME ();
Örnek:
Mevcut sistemin saatini görüntülemek için bir sorgu yazın.
Sorgu:
mysql> SELECT CURTIME () AS CurrentTime;
Burada sistemin güncel saatini almak için CURTIME() fonksiyonu ile SELECT sorgusu yazdık. CurrentTime, zamanı saklamak için kullanılan bir takma addır.
Yukarıdaki sorguyu çalıştırdıktan sonra aşağıdaki çıktıyı aldık:
Şimdiki zaman |
---|
18:49:07 |
Sorgunun sistemde yürütüldüğü saat 18:49:07'dir. Bu nedenle çıktı olarak görüntülenir.
4. TARİH()
SQL'deki DATE () işlevini kullanarak, tarihi özellikle DATETIME veri türü sütunundan çıkarabilirsiniz.
Sözdizimi:
SELECT DATE (DateTimeValue);
Örnek 1:
Verilen tarih ve saatten tarihi görüntülemek için bir sorgu yazın (ör. 2021-10-24 18:28:44).
Sorgu:
mysql> SELECT DATE ('2021-10-24 18:28:44') AS SHOW_DATE;
Burada DATE() fonksiyonuna geçirilen tarih ve saat parametresinden sadece tarihi almak için DATE() fonksiyonu ile SELECT sorgusu yazdık. SHOW_DATE, tarihi saklamak için kullanılan bir takma addır.
Yukarıdaki sorguyu çalıştırdıktan sonra aşağıdaki çıktıyı aldık:
SHOW_DATE |
---|
2021-10-24 |
Tarih ve saat parametresinden yani '2021-10-24 18:28:44'ten tarih değeri 2021-10-24 olur. Bu nedenle çıktı olarak görüntülenir.
Örnek 2:
Öğrenci tablosundaki tüm ayrıntıları, öğrenci tablosunun DateTime_Birth sütunundaki tarihle birlikte görüntülemek için bir sorgu yazın.
Sorgu:
mysql> SELECT ID, Name, DATE(DateTime_Birth) AS Date_of_Birth, City FROM student;
Burada ID ve Name’i almak için SELECT sorgusu yazdık. Date_of_Birth, DateTime_Birth'ün takma adıdır. Yalnızca tarihi almak için Date_of_Birth işlevini DATE () işleviyle birlikte kullandık.
Yukarıdaki sorguyu çalıştırdıktan sonra aşağıdaki çıktıyı aldık:
İD | İsim | Doğum tarihi | Şehir |
---|---|---|---|
1 | Mansi Şah | 2010-01-01 | Pune |
2 | Tejal Wagh | 2010-03-04 | Nasik |
3 | Sejal Kumari | 2010-05-01 | Mumbai |
4 | Sonal Jain | 2010-09-09 | Şimla |
5 | Surili Maheshwari | 2010-07-10 | Mektup |
DateTime_Birth sütunu dışındaki tüm kayıtlar öğrenci tablosundaki gibi görüntülenir. Gereksinime göre Date_of_Birth sütununda yalnızca tarih görüntülenir.
5. ÇIKAR()
SQL'deki EXTRACT() işlevini kullanarak, gereksinimlerimize göre tarih ve saatin belirli bir bölümünü çıkartabiliriz: gün, ay, yıl, gün, saat, dakika vb.
Sözdizimi:
SELECT EXTRACT (PART FROM DATE / TIME);
Örnek 1:
Verilen tarihten itibaren yılı (ör. 24) görüntülemek için bir sorgu yazınbuEkim 2021.
Sorgu:
mysql> SELECT EXTRACT (YEAR FROM '2021-10-24') AS SHOW_YEAR;
Burada verilen tarihten itibaren yılı almak için EXTRACT() fonksiyonu ile SELECT sorgusu yazdık. SHOW_YEAR, yılı saklamak için kullanılan bir takma addır.
veritabanı java'yı bağlayın
Yukarıdaki sorguyu çalıştırdıktan sonra aşağıdaki çıktıyı aldık:
SHOW_YEAR |
---|
2021 |
'2021' verilen tarihteki yıldır. Bu nedenle çıktı olarak görüntülenir.
Örnek 2:
Verilen tarihten itibaren ayı (ör. 24) görüntülemek için bir sorgu yazınbuEkim 2021.
Sorgu:
mysql> SELECT EXTRACT (MONTH FROM '2021-10-24') AS SHOW_MONTH;
Burada verilen tarihten itibaren ayı almak için EXTRACT() fonksiyonu ile SELECT sorgusu yazdık. SHOW_MONTH, ayı saklamak için kullanılan bir takma addır.
Yukarıdaki sorguyu çalıştırdıktan sonra aşağıdaki çıktıyı aldık:
SHOW_MONTH |
---|
10 |
10buverilen tarihteki ay değeridir. Bu nedenle çıktı olarak görüntülenir.
Örnek 3:
Verilen tarihten itibaren günü görüntülemek için bir sorgu yazın, yani 24buEkim 2021.
Sorgu:
mysql> SELECT EXTRACT (DAY FROM '2021-10-24') AS SHOW_DAY;
Burada verilen tarihten günü almak için EXTRACT() fonksiyonu ile SELECT sorgusu yazdık. SHOW_DAY, günü saklamak için kullanılan bir takma addır.
Yukarıdaki sorguyu çalıştırdıktan sonra aşağıdaki çıktıyı aldık:
GÖSTERİ GÜNÜ |
---|
24 |
24buverilen tarihteki gün değeridir. Bu nedenle çıktı olarak görüntülenir.
Örnek 4:
Verilen saatin saatini (örneğin 19:10:43) görüntülemek için bir sorgu yazın.
Sorgu:
mysql> SELECT EXTRACT (HOUR FROM '19:10:43') AS SHOW_HOUR;
Burada verilen saatten saati almak için EXTRACT() fonksiyonu ile SELECT sorgusu yazdık. SHOW_HOUR, bir saatin değerini saklamak için kullanılan bir takma addır.
Yukarıdaki sorguyu çalıştırdıktan sonra aşağıdaki çıktıyı aldık:
SHOW_HOUR |
---|
19 |
'19' verilen zamandaki saat değeridir. Bu nedenle çıktı olarak görüntülenir.
Örnek 5:
Verilen zamanın dakikasını (örneğin 19:10:43) görüntülemek için bir sorgu yazın.
Sorgu:
mysql> SELECT EXTRACT (MINUTE FROM '19:10:43') AS SHOW_MINUTE;
Burada verilen zamandan dakika değerini almak için EXTRACT() fonksiyonu ile SELECT sorgusu yazdık. SHOW_MINUTE, dakikayı saklamak için kullanılan bir takma addır.
Yukarıdaki sorguyu çalıştırdıktan sonra aşağıdaki çıktıyı aldık:
SHOW_MINUTE |
---|
10 |
'10' verilen süredeki dakika değeridir. Bu nedenle çıktı olarak görüntülenir.
Örnek 6:
Verilen zamandan (19:10:43) itibaren saniyeleri görüntülemek için bir sorgu yazın.
Sorgu:
mysql> SELECT EXTRACT (SECOND FROM '19:10:43') AS SHOW_SECOND;
Burada verilen zamanın saniye değerini almak için EXTRACT() fonksiyonu ile SELECT sorgusu yazdık. SHOW_SECOND, bir saniyenin değerini saklamak için kullanılan bir takma addır.
Yukarıdaki sorguyu çalıştırdıktan sonra aşağıdaki çıktıyı aldık:
SHOW_SECOND |
---|
43 |
43 verilen süredeki ikinci değerdir. Bu nedenle çıktı olarak görüntülenir.
6. DATE_ADD()
SQL'de DATE_ADD() fonksiyonunu kullanarak verilen tarihe belirli bir zaman aralığı ekleyebiliriz.
Sözdizimi:
SELECT DATE_ADD (DATE, INTERVAL VALUE Unit_to_be_added);
Örnek 1:
Verilen tarihe 15 günlük bir aralık (yani 24 gün) eklemek için bir sorgu yazınbuEkim 2021.
Sorgu:
mysql> SELECT DATE_ADD ('2021-10-24', INTERVAL 15 DAY) AS NEW_DATE;
Burada verilen tarihe 15 günlük aralık eklemek için DATE_ADD() fonksiyonu ile SELECT sorgusu yazdık. NEW_DATE, yeni bir tarihin değerini saklamak için kullanılan bir takma addır.
Aşağıdaki çıktıyı alacaksınız:
androidin paskalya yumurtası nedir
YENİ TARİH |
---|
2021-11-08 |
2021-10-24 tarihine 15 gün arayla eklendikten sonra yeni tarih 2021-11-08 olarak belirlendi.
Örnek 2:
Verilen tarihe 5 aylık bir aralık (ör. 24) eklemek için bir sorgu yazınbuEkim 2021.
Sorgu:
mysql> SELECT DATE_ADD ('2021-10-24', INTERVAL 5 MONTH) AS NEW_DATE;
Burada verilen tarihe 5 aylık bir aralık eklemek için DATE_ADD() fonksiyonu ile SELECT sorgusu yazdık. NEW_DATE, yeni bir tarihin değerini saklamak için kullanılan bir takma addır.
Aşağıdaki çıktıyı alacaksınız:
YENİ TARİH |
---|
2022-03-24 |
2021-10-24 tarihine 5 aylık aralık eklendikten sonra yeni tarih 2022-03-24 olarak belirlendi.
Örnek 3:
Verilen tarihe 25 yıllık bir aralık (yani 24 yıl) eklemek için bir sorgu yazınbuEkim 2021.
Sorgu:
mysql> SELECT DATE_ADD ('2021-10-24', INTERVAL 25 YEAR) AS NEW_DATE;
Burada verilen tarihe 25 yıllık bir aralık eklemek için DATE_ADD() fonksiyonu ile SELECT sorgusu yazdık. NEW_DATE, yeni bir tarihin değerini saklamak için kullanılan bir takma addır.
Aşağıdaki çıktıyı alacaksınız:
YENİ TARİH |
---|
2046-10-24 |
2021-10-24'e 25 yıllık aralık eklendiğinde yeni tarih 2046-10-24 oluyor.
7. DATE_SUB()
SQL'de DATE_SUB() fonksiyonunu kullanarak verilen tarihten belirli bir zaman aralığını kaldırabiliriz.
Sözdizimi:
SELECT DATE_SUB (DATE, INTERVAL VALUE Unit_to_be_subtracted);
Örnek 1:
Verilen tarihten 25 yıllık aralığı (yani 24 yılı) kaldırmak için bir sorgu yazınbuEkim 2021.
Sorgu:
java diziye ekle
mysql> SELECT DATE_SUB('2021-10-24', INTERVAL 25 YEAR) AS NEW_DATE;
Burada verilen tarihten 25 yıllık bir aralığı kaldırmak için DATE_SUB() fonksiyonu ile SELECT sorgusu yazdık. NEW_DATE, yeni bir tarihin değerini saklamak için kullanılan bir takma addır.
Aşağıdaki çıktıyı alacaksınız:
YENİ TARİH |
---|
1996-10-24 |
2021-10-24 tarihinden 25 yıllık aralık kaldırıldıktan sonra yeni tarih 1996-10-24 oldu.
Örnek 2:
Verilen tarihten itibaren 5 aylık aralığı (ör. 24) kaldırmak için bir sorgu yazınbuEkim 2021.
Sorgu:
mysql> SELECT DATE_SUB('2021-10-24', INTERVAL 5 MONTH) AS NEW_DATE;
Burada verilen tarihten itibaren 5 aylık aralığı kaldırmak için DATE_SUB() fonksiyonu ile SELECT sorgusu yazdık. NEW_DATE, yeni bir tarihin değerini saklamak için kullanılan bir takma addır.
Aşağıdaki çıktıyı alacaksınız:
YENİ TARİH |
---|
2021-05-24 |
2021-10-24 tarihinden itibaren 5 aylık ara kaldırıldıktan sonra yeni tarih 2021-05-24 olarak belirlendi.
Örnek 3:
Verilen tarihten 15 günlük aralığı (yani 24 günü) kaldırmak için bir sorgu yazınbuEkim 2021.
Sorgu:
mysql> SELECT DATE_SUB('2021-10-24', INTERVAL 15 DAY) AS NEW_DATE;
Burada verilen tarihten 15 günlük aralığı kaldırmak için DATE_SUB() fonksiyonu ile SELECT sorgusu yazdık. NEW_DATE, yeni bir tarihin değerini saklamak için kullanılan bir takma addır.
Aşağıdaki çıktıyı alacaksınız:
YENİ TARİH |
---|
2021-10-09 |
2021-10-24 tarihinden itibaren 15 günlük aralık kaldırıldıktan sonra yeni tarih 2021-10-09 olarak belirlendi.
8. DATEDIFF()
SQL'de DATEDIFF() fonksiyonunu kullanmak bize verilen iki tarih arasında kalan gün sayısını verecektir.
Sözdizimi:
SELECT DATEDIFF(Date1, Date2);
Örnek 1:
Verilen iki tarih arasındaki farkı (ör. 24) hesaplamak için bir sorgu yazınbuEkim 2021 ve 9buEkim 2021.
Sorgu:
mysql> SELECT DATEDIFF('2021-10-24', '2021-10-09') AS NEW_DATE;
Burada 2021-10-24 ile 2021-10-09 tarihleri arasındaki farkı elde etmek için DATE_DIFF() fonksiyonu ile SELECT sorgusu yazdık. Number_of_Days, gün sayısına göre farkı depolamak için kullanılan bir takma addır.
Aşağıdaki çıktıyı alacaksınız:
Gün sayısı |
---|
on beş |
2021-10-24 ile 2021-10-09 tarihleri arasında 15 gün fark bulunmaktadır.
Örnek 2:
Verilen iki tarih arasındaki farkı (ör. 5) hesaplamak için bir sorgu yazınbuMayıs, 2018 ve 5buMayıs 2008.
Sorgu:
mysql> SELECT DATEDIFF ('2018-05-05', '2008-05-05') AS NEW_DATE;
Burada 2018-05-05 ile 2008-05-05 tarihleri arasındaki farkı elde etmek için DATE_DIFF() fonksiyonu ile SELECT sorgusu yazdık. Number_of_Days, gün sayısına göre farkı depolamak için kullanılan bir takma addır.
Aşağıdaki çıktıyı alacaksınız:
Gün sayısı |
---|
3652 |
2018-05-05 ile 2008-05-05 tarihleri arasında 3652 gün fark bulunmaktadır.
9. DATE_FORMAT()
SQL'de DATE_FORMAT() fonksiyonunu kullanarak tarih veya saat ile ilgili bilgileri iyi formatlanmış bir şekilde görüntüleyebiliriz.
Bir tablonun sütununda DATE_FORMAT işlevini kullanmanın sözdizimi:
SELECT DATE_FORMAT (ColumnName, Expression) FROM Table Name;
VEYA
Belirli bir tarihi biçimlendirmek için söz dizimi:
SELECT DATE_FORMAT (Date, Expression);
Örnek 1:
Verilen tarihi iyi biçimlendirilmiş bir şekilde görüntülemek için bir sorgu yazın, örneğin 24buEkim 2021.
Sorgu:
mysql> SELECT DATE_FORMAT ('2021-10-24', '%W %D %M %Y') AS Formatted_Date;
Burada 2021-10-24 tarihini formatlanmış biçimde almak için DATE_FORMAT() fonksiyonu ile SELECT sorgusu yazdık. Formatted_Date, biçimlendirilmiş tarihi saklamak için kullanılan bir takma addır.
youtube videolarını vlc'ye indirme
Aşağıdaki çıktıyı alacaksınız:
Biçimlendirilmiş_Tarih |
---|
24 Ekim 2021 Pazar |
24 Ekim 2021 Pazar, 2021-10-24 için biçimlendirilmiş tarihtir.
Örnek 2:
Verilen tarih ve saati iyi biçimlendirilmiş bir şekilde görüntülemek için bir sorgu yazın (ör. 24)buEkim 2021 22:30:17.
Sorgu:
mysql> SELECT DATE_FORMAT ('2021-10-24 22:30:17', '%W %D %M %Y %r') AS Formatted_DateTime;
Burada '2021-10-24 22:30:17' tarih ve saatini formatlanmış biçimde almak için DATE_FORMAT() fonksiyonu ile SELECT sorgusu yazdık. Formatted_DateTime, biçimlendirilmiş tarih ve saati saklamak için kullanılan bir takma addır.
Aşağıdaki çıktıyı alacaksınız:
Formatlanmış_TarihSaat |
---|
Pazar 24 Ekim 2021 22:30:17 |
24 Ekim 2021 Pazar 22:30:17, 2021-10-24 22:30:17 için biçimlendirilmiş tarih ve saattir.
Örnek 3:
Öğrenci sütunundaki tüm ayrıntıları DateTime_Birth sütunuyla birlikte iyi biçimlendirilmiş bir şekilde görüntülemek için bir sorgu yazın.
Sorgu:
mysql> SELECT ID, Name, DATE_FORMAT (DateTime_Birth, '%W %D %M %Y %r') AS Formatted_DateTime, City FROM student;
Burada tüm kayıtların tarih ve saatini formatlanmış biçimde almak için DATE_FORMAT() fonksiyonu ile SELECT sorgusu yazdık. Formatted_DateTime, biçimlendirilmiş tarih ve saati saklamak için kullanılan bir takma addır.
Aşağıdaki çıktıyı alacaksınız:
İD | İsim | Formatlanmış_TarihSaat | Şehir |
---|---|---|---|
1 | Mansi Şah | Cuma 1 Ocak 2010 18:39:09 | Pune |
2 | Tejal Wagh | Perşembe 4 Mart 2010 05:13:19 | Nasik |
3 | Sejal Kumari | Cumartesi 1 Mayıs 2010 10:31:07 | Mumbai |
4 | Sonal Jain | Perşembe 9 Eylül 2010 17:17:07 | Şimla |
5 | Surili Maheshwari | Cumartesi 10 Temmuz 2010 20:45:18 | Mektup |
DateTime_Birth sütunu dışındaki tüm kayıtlar öğrenci tablosundaki gibi görüntülenir. Formatted_DateTime sütununda ihtiyaca göre yalnızca tarih ve saat görüntülenir.