JavaRush /Kurslar /All lectures for UZ purposes /Sana bilan ishlash funksiyalari

Sana bilan ishlash funksiyalari

All lectures for UZ purposes
Daraja, Dars
Mavjud

3.1 Sana va vaqt bilan ishlash uchun funksiyalar ro'yxati

Sana va vaqt - bu Ma'lumotlar Bazasida saqlanadigan eng keng tarqalgan ma'lumot turlaridan biridir. Shuning uchun ular bilan ishlash uchun funksiyalar ro'yxati juda katta. Eng mashhurlari quyidagilar:

# Funksiya Tavsif
1 CURDATE() Hozirgi sanani qaytaradi
2 CURTIME() Hozirgi vaqtni qaytaradi
3 NOW(), LOCALTIME() Hozirgi sana va vaqtni qaytaradi
4 YEAR() Sanadan yillarni qaytaradi
5 MONTH() Sanadan oylarni qaytaradi
6 DAY(), DAYOFMONTH() Sanadan kunlarni qaytaradi
7 HOUR() Faqat soatni vaqt dan qaytaradi
8 MINUTE() Vaqtdan daqiqalarni qaytaradi
9 SECOND() Vaqtdan sekundlarni qaytaradi
10 DAYNAME() Hafta kunining nomini qaytaradi: Monday, ...
11 MONTHNAME() Oyning nomini qaytaradi: Январь, …
12 WEEK() Sanadan haftani qaytaradi
13 WEEKDAY() Hafta kunining raqamini qaytaradi: Дүйшанба – 0, Сешанба – 1
14 WEEKOFYEAR() Yilda haftaning raqamini qaytaradi
15 DAYOFWEEK() Hafta kunining nomini qaytaradi
16 DAYOFYEAR() Yilning kunini qaytaradi: 1-366
17 DATE() Faqat sana va vaqt obyektidan sanani qaytaradi
18 ADDDATE() Sana qo'shadi
19 SUBDATE() Sanadan o'chiradi
20 ADDTIME() Vaqt qo'shadi
21 SUBTIME() Vaqt o'chiradi

Men funksiyalarni kichik guruhlarga ajratdim, shunda ular bilan ishlashni oson tushunish mumkin bo'ladi. Quyida biz har bir guruhdan bitta funksiya ko'rib chiqamiz.

Sana va vaqt bilan ishlash uchun to'liq funksiyalar ro'yxatini bu havoladan topishingiz mumkin: https://dev.mysql.com/doc/refman/8.0/en/date-and-time-functions.html

3.2 Funksiyalarni chaqirish

Aytgancha, shuncha ko'p funksiya o'rganayotganimizdan beri, SELECT operatorini FROM bilan birga ishlatish shart emasligini eslatib o'tmoqchiman. U har qanday ifodaning qiymatini qaytarishi mumkin. Uning umumiy ko'rinishi quyidagi shaklda beriladi:


SELECT ifoda 
        

Agar siz biror funksiyani chaqirmoqchi bo'lsangiz, quyidagi kodni yozishingiz kerak:


SELECT funksiya(parametrlar)  
        

Quyida SELECT operatorining jadvalga murojaat qilmasdan ishlashiga bir nechta misollar keltiraman:

# So'rov Natija
1 SELECT 1+1 2
2 SELECT 13 MOD 5 3
3 SELECT RAND() 0.20771444235715497
4 SELECT CURDATE() 2022-06-04
5 SELECT CURTIME() 00:06:02
6 SELECT NOW() 2022-06-04 00:06:43

Yuqoridagi jadvalda ko'rib turganingizdek, hozirgi sana va vaqtni olish uchun sizga quyidagi funksiyalardan biri kerak bo'ladi:

  • CURDATE() – joriy sana;
  • CURTIME() – joriy vaqt;
  • NOW() – joriy sana va vaqt.

3.3 Ma'lumotlarni yil va oy bo'yicha guruhlash

Keling, xodimlar uchun vazifalar bilan task jadvalimizni eslaylik. Ushbu jadvaldagi vazifalarni yillar bo'yicha guruhlashga harakat qilamiz. Buning uchun YEAR() funksiya foydalanamiz, u berilgan sanadan yilni qaytaradi.

Bizning so'rovimizning birinchi versiyasi quyidagi ko'rinishda bo'ladi:


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

Bu so'rovning natijasi quyidagicha bo'ladi:

id employee_id name year deadline
1 1 Front-enddagi xatoni tuzating 2022 2022-06-01
2 2 Back-enddagi xatoni tuzating 2022 2022-06-15
3 5 Kofe sotib oling 2022 2022-07-01
4 5 Kofe sotib oling 2022 2022-08-01
5 5 Kofe sotib oling 2022 2022-09-01
6 (NULL) Ofisni tozalang (NULL) (NULL)
7 4 Hayotdan zavqlaning (NULL) (NULL)
8 6 Hayotdan zavqlaning (NULL) (NULL)

Barcha satrlar bir xil yilda ekanligini ko'rib turibmiz, shuning uchun ikkinchi variantda yil va oy maydonlaridan foydalanamiz. Bizning so'rovimizning ikkinchi versiyasi quyidagi ko'rinishda bo'ladi:


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

Bu so'rovning natijasi quyidagicha bo'ladi:

id employee_id name year month deadline
1 1 Front-enddagi xatoni tuzating 2022 6 2022-06-01
2 2 Back-enddagi xatoni tuzating 2022 6 2022-06-15
3 5 Kofe sotib oling 2022 7 2022-07-01
4 5 Kofe sotib oling 2022 8 2022-08-01
5 5 Kofe sotib oling 2022 9 2022-09-01
6 (NULL) Ofisni tozalang (NULL) (NULL) (NULL)
7 4 Hayotdan zavqlaning (NULL) (NULL) (NULL)
8 6 Hayotdan zavqlaning (NULL) (NULL) (NULL)

Vazifalarni yil va oy bo'yicha guruhlashni qanday amalga oshirishni aytib o'tirmayman – sen buni allaqachon o'rgangansan: GROUP BY operatoridan foydalan.

Izohlar
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION