3.1 ფუნქციების სია თარიღსა და დროსთან მუშაობისთვის
თარიღი და დრო არის მონაცემების ყველაზე გავრცელებული ტიპები, რომლებიც ინახება მონაცემთა ბაზებში. სწორედ ამიტომ, ფუნქციების სია, რომლებიც მათთან მუშაობისთვის გამოიყენება, ძალიან დიდია. ესენი ყველაზე პოპულარულია:
# | ფუნქცია | აღწერა |
---|---|---|
1 | CURDATE() | აბრუნებს მიმდინარე თარიღს |
2 | CURTIME() | აბრუნებს მიმდინარე დროს |
3 | NOW(), LOCALTIME() | აბრუნებს მიმდინარე თარიღსა და დროს |
4 | YEAR() | აბრუნებს თარიღიდან წელს |
5 | MONTH() | აბრუნებს თარიღიდან თვეს |
6 | DAY(), DAYOFMONTH() | აბრუნებს თარიღიდან დღეს |
7 | HOUR() | აბრუნებს მხოლოდ საათებს დროიდან |
8 | MINUTE() | აბრუნებს წუთებს დროიდან |
9 | SECOND() | აბრუნებს წამებს დროიდან |
10 | DAYNAME() | აბრუნებს კვირის დღის სახელს: Monday, ... |
11 | MONTHNAME() | აბრუნებს თვის სახელს: იანვარი, ... |
12 | WEEK() | აბრუნებს კვირას თარიღიდან |
13 | WEEKDAY() | აბრუნებს კვირის დღის ნომერს: ორშაბათი – 0, სამშაბათი – 1 |
14 | WEEKOFYEAR() | აბრუნებს კვირის ნომერს წელიწადში |
15 | DAYOFWEEK() | აბრუნებს კვირის დღის სახელს |
16 | DAYOFYEAR() | აბრუნებს წლის დღეს: 1-366 |
17 | DATE() | აბრუნებს მხოლოდ თარიღს ობიექტიდან „თარიღი და დრო“ |
18 | ADDDATE() | დღეების დამატება თარიღთან |
19 | SUBDATE() | დღეების გამოკლება თარიღიდან |
20 | ADDTIME() | დროის დამატება დროსთან |
21 | SUBTIME() | დროის გამოკლება დროსგან |
სპეციალურად დავაჯგუფე ფუნქციები პატარა ჯგუფებში, რომ უფრო ადვილად გაიგო, როგორ იმუშაო მათთან. ქვემოთ თითოეულ ჯგუფიდან ერთ ფუნქციას განვიხილავთ.
თარიღსა და დროსთან მუშაობისთვის სრული ფუნქციების სია შეგიძლია ნახო ბმულზე: https://dev.mysql.com/doc/refman/8.0/en/date-and-time-functions.html
3.2 ფუნქციების გამოძახება
სხვათა შორის, თუ ამდენი ფუნქციის შესწავლას ვაპირებთ, ვფიქრობ, სასარგებლო იქნება აღვნიშნოთ, რომ SELECT
ოპერატორის გამოყენება არ არის სავალდებულო FROM
სთან ერთად. ის შეიძლება დააბრუნოს ნებისმიერი გამოსახულების მნიშვნელობა. მისი საერთო სტრუქტურა გამოიყურება შემდეგნაირად:
SELECT გამოსახულება
თუ ფუნქციის გამოძახება გსურს, უნდა დაწერო კოდი შემდეგნაირად:
SELECT ფუნქცია(პარამეტრები)
ქვემოთ რამდენიმე მაგალითი მოვიყვანე SELECT
ოპერატორის მუშაობის გარეშე ცხრილების მიმართ:
# | მოთხოვნა | შედეგი |
---|---|---|
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 |
როგორც ხედავ, ზედა ცხრილში, რომ მიიღო მიმდინარე თარიღი და დრო, საჭიროა მხოლოდ გამოიყენო ერთი ამ ფუნქციებიდან:
CURDATE()
– მიმდინარე თარიღი;CURTIME()
– მიმდინარე დრო;NOW()
– მიმდინარე თარიღი და დრო.
3.3 მონაცემების დაჯგუფება წლისა და თვის მიხედვით
მოდი გავიხსენოთ ჩვენი ცხრილი task თანამშრომლებისთვის დავალებებთან. ვცადოთ დავალებების დაჯგუფება ამ ცხრილიდან წლის მიხედვით. ამისთვის გამოვიყენებთ YEAR()
ფუნქციას, რომელიც აბრუნებს წელიწადს გადმოცემული თარიღიდან.
ჩვენი მოთხოვნის პირველი ვერსია ასეთი იქნება:
SELECT
id,
employee_id ,
name,
YEAR(deadline) AS year,
deadline
FROM task
ამ მოთხოვნის შედეგი ასეთია:
id | employee_id | name | year | deadline |
---|---|---|---|---|
1 | 1 | ჩაასწორე ბაგი ფრონტენდში | 2022 | 2022-06-01 |
2 | 2 | ჩაასწორე ბაგი ბექენდში | 2022 | 2022-06-15 |
3 | 5 | შეიძინე ყავა | 2022 | 2022-07-01 |
4 | 5 | შეიძინე ყავა | 2022 | 2022-08-01 |
5 | 5 | შეიძინე ყავა | 2022 | 2022-09-01 |
6 | (NULL) | იმოქმედე ოფისი | (NULL) | (NULL) |
7 | 4 | ისიამოვნე ცხოვრებით | (NULL) | (NULL) |
8 | 6 | ისიამოვნე ცხოვრებით | (NULL) | (NULL) |
ვხედავთ, რომ ყველა სტრიქონში ერთი და იგივე წელიწადია, ამიტომ მოდი ორ ველს გამოვიყენებთ – წელსა და თვეს. ჩვენი მოთხოვნის მეორე ვერსია ასეთი იქნება:
SELECT
id,
employee_id ,
name,
YEAR(deadline) AS year,
MONTH(deadline) AS month,
deadline
FROM task
ამ მოთხოვნის შედეგი ასეთია:
id | employee_id | name | year | month | deadline |
---|---|---|---|---|---|
1 | 1 | ჩაასწორე ბაგი ფრონტენდში | 2022 | 6 | 2022-06-01 |
2 | 2 | ჩაასწორე ბაგი ბექენდში | 2022 | 6 | 2022-06-15 |
3 | 5 | შეიძინე ყავა | 2022 | 7 | 2022-07-01 |
4 | 5 | შეიძინე ყავა | 2022 | 8 | 2022-08-01 |
5 | 5 | შეიძინე ყავა | 2022 | 9 | 2022-09-01 |
6 | (NULL) | იმოქმედე ოფისი | (NULL) | (NULL) | (NULL) |
7 | 4 | ისიამოვნე ცხოვრებით | (NULL) | (NULL) | (NULL) |
8 | 6 | ისიამოვნე ცხოვრებით | (NULL) | (NULL) | (NULL) |
როგორ დავაჯგუფოთ დავალებები წლისა და თვის მიხედვით პირადად არ მოგეხმარები – ეს უკვე ისწავლლე: გამოიყენე GROUP BY
ოპერატორი.
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ