Makaleyi arkadaşlarınızla paylaşarak sitenin geliştirilmesine yardımcı olun!

MySQL CURDATE'e Giriş

Manier kez tarih sütunlu MySQL tablolarına değerleri eklerken, o belirli ekleme zamanındaki tarih olan tarih sütununa değeri eklememiz veya hatta tarih sütununun varsayılan değerini bu kayıt kimliğinin eklendiği tarih. Tüm bu durumlarda, işlem gerçekleştirilirken o belirli durumda tarihin değerini almamız gerekir. Bunun için Mysql, geçerli tarihi almak için CURDATE işlevini kullanma işlevselliği sağlamıştır.

Bu makalede, CURDATE işlevini nasıl kullanabileceğimizi, sözdizimini ve örneğini, MySQL'deki CURDATE işlevinin alternatiflerini ve NOW() işlevi ile CURDATE() işlevi arasındaki farkı öğreneceğiz.

Sözdizimi

string/number CURDATE();

Açıklama: CURDATE() işlevi, işlev çağrıldığında o anki tarihin veya o belirli örnekteki tarihin değerini döndürür. Tarihin biçimi, işlevin çağrıldığı bağlama bağlıdır. Örneğin, dize bağlamı kullanıldığında, alınan verinin biçimi 'YYYY-AA-GG' biçimindeyken sayısal bağlam söz konusu olduğunda alınan tarihin biçimi YYYY-AA-GG biçimine dönüşür.

MySQL CURDATE nasıl çalışır?

Aşağıdaki gibi basit SELECT ifadesini kullanarak CURDATE() işlevinin değerini alalım:

Kod:

CURDATE();

Çıktı:

Açıklama: makalenin 'YYYY-AA-GG' formatında yazıldığı tarihtir. Gördüğümüz gibi, kullanılan varsayılan biçim 'YYYY-AA-GG' ve dönüş türü bir dizedir. Sayısal bağlamda alınan değeri, döndürülen değeri dolaylı olarak sayısal değere dönüştürmek için 0 veya 1 değeri veya başka bir sayı ekleyerek dönüştürelim. Aşağıdaki sorgu ifadelerini kullanacağız.

Kod:

SEÇ 0 + CURDATE();

Çıktı:

Açıklama: Yukarıdaki sorgu ifadesinin yürütülmesi, bugünün tarih değeriyle YYYY-AA-GG formatında aşağıdaki çıktıyı verir.

Kod:

SELECT 1 + CURDATE();

Çıktı:

Açıklama: Yukarıdaki sorgu ifadesinin yürütülmesi, YYYY-AA-GG biçiminde bugünün tarihi artı bir güne eşdeğer olduğundan yarının tarih değeriyle aşağıdaki çıktıyı verir.

MySQL CURDATE Uygulama Örnekleri

Aşağıda bahsedilen bazı örnekler:

Örnek 1

Tarih sütununu bugünün tarihine eklemek için tabloda nasıl kullanabileceğimizi görelim. Aşağıdaki sorgu deyimi yardımıyla tarih veri türü ile join_date sütunu ile educba_writers adında bir tablo oluşturacağız:

Kod:

CREATE TABLE `educba_writers` (
`id` int(11) NULL DEĞİL,
`firstName` varchar(10) COLLATE latin1_danish_ci NULL DEĞİL,
"oran" ondalık(5,2) VARSAYILAN NULL,
"joining_date" tarihi DEFAULT NULL
) MOTOR=InnoDB DEFAULT CHARSET=latin1 COLLATE=latin1_danish_ci;

Çıktı:

Örnek 2

Şimdi, CURDATE işlevini kullanarak educba_writers tablosuna değerleri bugünün tarihi ile join_date değeri olarak ekleyeceğiz. Bunun için aşağıdaki insert sorgu ifadesini kullanacağız. Boş oranlı ve birleştirme tarihi değerine sahip birkaç satır daha ekleyelim:

Kod:

INSERT INTO 'educba_writers' ('id', 'firstName', 'oran', 'joining_date') DEĞERLER
(1, 'Payal', 750, CURDATE());

Çıktı:

Örnek 3

Kaydı alalım ve aşağıdaki sorgu ifadesini kullanarak educba_writers tablosuna eklenen değeri görüntüleyelim:

Kod:

SEÇeducba_writers'DAN;

Çıktı:

Örnek 4

Bugünün 2020-05-27 tarihinin 'YYYY-AA-GG' formatındaki değerinin join_date sütununa eklendiğini görebiliriz. CURDATE() fonksiyonunu kullanarak bugünün tarihi ile ilgili tarihleri bile ekleyebiliriz. Örneğin, CURDATE() işlevinden o gün sayısını az altarak katılma tarihini bugünden iki gün önce veya üç gün sonra olarak ekleyebiliriz. Şimdi, katılımı bugünden iki gün önce olan Vyankatesh adında bir yazar kaydı eklememiz gerektiğini varsayalım, o zaman bu kaydı eklemek için aşağıdaki sorgu ifadesini kullanabiliriz:

Kod:

INSERT INTO 'educba_writers' ('id', 'firstName', 'oran', 'joining_date') DEĞERLER
(2, 'Vyankatesh', 700, CURDATE()-2);

Çıktı:

Örnek 5

Kaydı alalım ve aşağıdaki sorgu ifadesini kullanarak educba_writers tablosuna eklenen değeri görüntüleyelim:

Kod:

SEÇeducba_writers'DAN;

Çıktı:

Örnek 6

Şimdi, katılımı dört gün sonra olan Omprakash adında bir yazar kaydı eklememiz gerektiğini varsayalım, ardından sorgu ifadesini aşağıdaki gibi kullanabiliriz:

Kod:

INSERT INTO 'educba_writers' ('id', 'firstName', 'oran', 'joining_date') DEĞERLER
"(3, &39;Omprakash&39;, 600, DATE_FORMAT((CURDATE() + 4), %Y-%m-%d));"

Çıktı:

Örnek 7

Kaydı alalım ve aşağıdaki sorgu ifadesini kullanarak educba_writers tablosuna eklenen değeri görüntüleyelim:

Kod:

SEÇeducba_writers'DAN;

Çıktı:

CURDATE() işlevinin alternatifleri

Her ikisi de aynı şekilde çalıştığı ve CURDATE() işleviyle aynı değeri döndürdüğü için CURDATE() işlevi yerine CURRENT_DATE ve CURRENT_DATE() işlevlerini kullanabiliriz. Üç işlevin de değerini aşağıdaki gibi alacak basit bir SELECT sorgusu yürüterek üç işlevin de çalıştığını onaylayalım:

Kod:

CURDATE(), GEÇERLİ_TARİH, GÜNCEL_TARİH();

Çıktı:

Açıklama: Gördüğümüz gibi, üç işlev ve ifade de bugünün tarihi olan 2020-05-27 ile aynı değeri aldı.

NOW() işlevi ile CURDATE() arasındaki fark

Now() işlevi, geçerli tarih ve saati içeren tüm zaman damgasını alırken, CURDATE() işlevi yalnızca geçerli tarihi alır. NOW() işlevinin tarih kısmı, CURDATE() işlevinin çıktısına eşdeğerdir. Aşağıdaki sorgu ifadesini kullanarak sonucu görelim:

Kod:

CURDATE(), DATE(NOW()), NOW();

Çıktı:

Açıklama: CURDATE() ve DATE(NOW()) ifadelerinin değerinin eşdeğer olduğunu görebiliriz.

Sonuç

Geçerli tarihi almak ve gerekliliğimize göre değiştirmek için MySQL'deki CURDATE() işlevini kullanabiliriz.

Makaleyi arkadaşlarınızla paylaşarak sitenin geliştirilmesine yardımcı olun!