3.1 Списък с функции за работа с дата и час
Датата и часът са едни от най-често срещаните типове данни, съхранявани в бази данни. Ето защо списъкът с функции за работа с тях е много голям. Ето най-популярните:
# | функция | Описание |
---|---|---|
1 | CURDATE() | Връща текущата дата |
2 | CURTIME() | Връща текущото време |
3 | NOW(), LOCALTIME() | Връща текущата дата и текущия час |
4 | ГОДИНА() | Връща година от датата |
5 | МЕСЕЦ() | Връща месеца от дата |
6 | DAY(), DAYOFMONTH() | Връща деня от дата |
7 | ЧАС() | Връща само часове след време |
8 | МИНУТА() | Обявява minutesи от час |
9 | ВТОРИ() | Връща секунди след време |
10 | DAYNAME() | Връща името на деня от седмицата: понеделник, ... |
единадесет | MONTHNAME() | Връща името на месеца: януари, ... |
12 | СЕДМИЦА() | Връща седмицата от дата |
13 | ДЕЛНИК() | Връща номера на деня от седмицата: понеделник - 0, вторник - 1 |
14 | WEEKOFYEAR() | Връща номера на седмицата от годината |
15 | ДЕН НА СЕДМИЦАТА() | Връща номера на деня от седмицата: неделя - 1, понеделник - 2 |
16 | DAYOFYEAR() | Връща деня от годината: 1-366 |
17 | ДАТА() | Връща само датата от обект "datetime". |
18 | ADDDATE() | Добавя дни към дата |
19 | ПОДДАТА() | Изважда дни от дата |
20 | ADDTIME() | Добавя време към време |
21 | SUBTIME() | Изважда времето от времето |
Умишлено групирах функциите в малки групи, за да улесня разбирането How се работи с тях. По-долу ще разгледаме по една функция от всяка група.
Можете да намерите пълен списък с функции за работа с дата и час на връзката: https://dev.mysql.com/doc/refman/8.0/en/date-and-time-functions.html
3.2 Функции за повикване
Между другото, тъй като учим толкова много функции, мисля, че е полезно да споменем, че операторът SELECT
не трябва да се използва с FROM
. Може да върне стойността на всеки израз. Общият изглед на който е даден от шаблона:
SELECT expression
И ако искате да извикате няHowва функция, тогава трябва да напишете code като:
SELECT function(options)
По-долу ще дам няколко примера за работата на оператора SELECT
без прибягване до таблици:
# | Заявка | Резултат |
---|---|---|
1 | ИЗБЕРЕТЕ 1+1 | 2 |
2 | ИЗБЕРЕТЕ 13 MOD 5 | 3 |
3 | ИЗБЕРЕТЕ RAND() | 0,20771444235715497 |
4 | ИЗБЕРЕТЕ CURDATE() | 2022-06-04 |
5 | ИЗБЕРЕТЕ CURTIME() | 00:06:02 |
6 | ИЗБЕРЕТЕ СЕГА() | 2022-06-04 00:06:43 |
И Howто можете да видите, в tableта по-горе, за да получите текущата дата и час, просто трябва да използвате една от функциите:
CURDATE()
- текуща дата;CURTIME()
- текущо време;NOW()
– текуща дата и час.
3.3 Групиране на данните по година и месец
Нека си припомним нашата table със задачи със задачи за служители. Нека се опитаме да групираме задачите от тази table по години. За да направим това, използваме функцията YEAR()
, която връща годината от датата, подадена към нея.
Първата version на нашата заявка ще изглежда така:
SELECT
id,
employee_id ,
name,
YEAR(deadline) AS year,
deadline
FROM task
Резултатът от тази заявка ще бъде:
document за самоличност | ИД на служител | име | година | краен срок |
---|---|---|---|---|
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 | (НУЛА) | Почистете офиса | (НУЛА) | (НУЛА) |
7 | 4 | Наслаждавай се на живота | (НУЛА) | (НУЛА) |
8 | 6 | Наслаждавай се на живота | (НУЛА) | (НУЛА) |
Виждаме, че всички редове имат една и съща година, така че нека използваме две полета - година и месец. Втората version на нашата заявка ще изглежда така:
SELECT
id,
employee_id ,
name,
YEAR(deadline) AS year,
MONTH(deadline) AS month,
deadline
FROM task
Резултатът от тази заявка ще бъде:
document за самоличност | ИД на служител | име | година | месец | краен срок |
---|---|---|---|---|---|
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 | (НУЛА) | Почистете офиса | (НУЛА) | (НУЛА) | (НУЛА) |
7 | 4 | Наслаждавай се на живота | (НУЛА) | (НУЛА) | (НУЛА) |
8 | 6 | Наслаждавай се на живота | (НУЛА) | (НУЛА) | (НУЛА) |
Няма да ви казвам How да групирате задачи по година и месец - вече сте учor това: използвайте оператора GROUP BY
.
GO TO FULL VERSION