3.1 Tarih ve saat ile çalışmak için işlevlerin listesi

Tarih ve saat, veritabanlarında depolanan en yaygın veri türlerinden biridir. Bu nedenle, onlarla çalışmak için işlevlerin listesi çok geniştir. İşte en popüler olanlar:

# İşlev Tanım
1 CURDATE() Geçerli tarihi döndürür
2 CUTIME() Geçerli saati döndürür
3 ŞİMDİ(), YEREL ZAMAN() Geçerli tarihi ve geçerli saati döndürür
4 YIL() Tarihten yılı döndürür
5 AY() Bir tarihten ayı döndürür
6 GÜN(), DAYOFAY() Bir tarihten günü döndürür
7 SAAT() Zamandan yalnızca saat döndürür
8 DAKİKA() Zamandan dakikaları duyurur
9 SANİYE() Zamandan saniyeleri döndürür
10 DAYNAME() Haftanın gününün adını döndürür: Pazartesi, ...
on bir AY ADI() Ayın adını döndürür: Ocak, ...
12 HAFTA() Bir tarihten haftayı döndürür
13 HAFTA İÇİ() Haftanın gününün sayısını döndürür: Pazartesi - 0, Salı - 1
14 YILIN HAFTASI() Yılın hafta numarasını verir
15 HAFTANIN GÜNÜ() Haftanın gününün sayısını döndürür: Pazar - 1, Pazartesi - 2
16 YILIN GÜNÜ() Yılın gününü döndürür: 1-366
17 TARİH() Bir "datetime" nesnesinden yalnızca tarihi döndürür
18 TARİH EKLE() Bir tarihe gün ekler
19 ALT TARİH() Bir tarihten günleri çıkarır
20 ZAMAN EKLE() Zaman zaman ekler
21 SUBTIME() Zamanı zamandan çıkarır

İşlevleri, onlarla nasıl çalışılacağını daha kolay anlayabilmek için kasıtlı olarak küçük gruplar halinde gruplandırdım. Aşağıda her gruptan bir işlevi ele alacağız.

Tarih ve saatle çalışmaya yönelik işlevlerin tam listesini şu bağlantıda bulabilirsiniz: https://dev.mysql.com/doc/refman/8.0/en/date-and-time-functions.html

3.2 Arama işlevleri

Bu arada, çok fazla fonksiyon öğrendiğimiz için, SELECToperatörün FROM. Herhangi bir ifadenin değerini döndürebilir. Genel görünümü şablon tarafından verilmektedir:

SELECT expression

Ve bir işlevi çağırmak istiyorsanız, aşağıdaki gibi bir kod yazmanız gerekir:

SELECT function(options)

SELECTAşağıda , tabloya başvurmadan operatörün çalışmasına ilişkin bazı örnekler vereceğim :

# Rica etmek Sonuç
1 1+1 SEÇ 2
2 13 MOD 5 SEÇİN 3
3 RAND()'I SEÇİN 0,20771444235715497
4 CURDATE()'İ SEÇİN 2022-06-04
5 CUTIME'I SEÇ() 00:06:02
6 ŞİMDİ SEÇ() 2022-06-04 00:06:43

Ve yukarıdaki tabloda da görebileceğiniz gibi, geçerli tarih ve saati almak için işlevlerden birini kullanmanız yeterlidir:

  • CURDATE()- Geçerli tarih;
  • CURTIME()- şimdiki zaman;
  • NOW()– geçerli tarih ve saat.

3.3 Verileri yıl ve aya göre gruplama

Çalışanlar için görevlerle görev tablomuzu hatırlayalım. Bu tablodaki görevleri yıllara göre gruplandırmaya çalışalım. YEAR()Bunu yapmak için, kendisine iletilen tarihten itibaren yılı döndüren işlevi kullanırız .

Sorgumuzun ilk versiyonu şöyle görünecek:

SELECT
    id,
    employee_id ,
    name,
    YEAR(deadline) AS year,
    deadline
FROM task

Bu sorgunun sonucu şöyle olacaktır:

İD Çalışan kimliği isim yıl son teslim tarihi
1 1 Ön uçtaki bir hatayı düzeltin 2022 2022-06-01
2 2 Arka uçtaki bir hatayı düzeltin 2022 2022-06-15
3 5 kahve satın al 2022 2022-07-01
4 5 kahve satın al 2022 2022-08-01
5 5 kahve satın al 2022 2022-09-01
6 (HÜKÜMSÜZ) ofisi temizle (HÜKÜMSÜZ) (HÜKÜMSÜZ)
7 4 Hayatın tadını çıkar (HÜKÜMSÜZ) (HÜKÜMSÜZ)
8 6 Hayatın tadını çıkar (HÜKÜMSÜZ) (HÜKÜMSÜZ)

Tüm satırların aynı yıla sahip olduğunu görebiliriz, o halde iki alan kullanalım - yıl ve ay. Sorgumuzun ikinci versiyonu şöyle görünecek:

SELECT
    id,
    employee_id ,
    name,
    YEAR(deadline) AS year,
    MONTH(deadline) AS month,
    deadline
FROM task

Bu sorgunun sonucu şöyle olacaktır:

İD Çalışan kimliği isim yıl ay son teslim tarihi
1 1 Ön uçtaki bir hatayı düzeltin 2022 6 2022-06-01
2 2 Arka uçtaki bir hatayı düzeltin 2022 6 2022-06-15
3 5 kahve satın al 2022 7 2022-07-01
4 5 kahve satın al 2022 8 2022-08-01
5 5 kahve satın al 2022 9 2022-09-01
6 (HÜKÜMSÜZ) ofisi temizle (HÜKÜMSÜZ) (HÜKÜMSÜZ) (HÜKÜMSÜZ)
7 4 Hayatın tadını çıkar (HÜKÜMSÜZ) (HÜKÜMSÜZ) (HÜKÜMSÜZ)
8 6 Hayatın tadını çıkar (HÜKÜMSÜZ) (HÜKÜMSÜZ) (HÜKÜMSÜZ)

Size görevleri yıl ve aya göre nasıl gruplandıracağınızı söylemeyeceğim - bunu zaten incelediniz: operatörü kullanın GROUP BY.