3.1 Listahan ng mga function para sa pagtatrabaho sa petsa at oras
Ang petsa at oras ay isa sa mga pinakakaraniwang uri ng data na nakaimbak sa mga database. Iyon ang dahilan kung bakit ang listahan ng mga pag-andar para sa pagtatrabaho sa kanila ay napakalaki. Narito ang mga pinakasikat:
# | Function | Paglalarawan |
---|---|---|
1 | CURDATE() | Ibinabalik ang kasalukuyang petsa |
2 | CURTIME() | Ibinabalik ang kasalukuyang oras |
3 | NGAYON(), LOCALTIME() | Ibinabalik ang kasalukuyang petsa at kasalukuyang oras |
4 | YEAR() | Ibinabalik ang taon mula sa petsa |
5 | MONTH() | Ibinabalik ang buwan mula sa isang petsa |
6 | DAY(), DAYOFMONTH() | Ibinabalik ang araw mula sa isang petsa |
7 | ORAS() | Ibinabalik lamang ang mga oras mula sa oras |
8 | MINUTE() | Nag-aanunsyo ng mga minuto mula sa oras |
9 | IKALAWANG() | Ibinabalik ang mga segundo mula sa oras |
10 | DAYNAME() | Ibinabalik ang pangalan ng araw ng linggo: Lunes, ... |
labing-isa | MONTHNAME() | Ibinabalik ang pangalan ng buwan: Enero, ... |
12 | LINGGO() | Ibinabalik ang linggo mula sa isang petsa |
13 | WEEKDAY() | Ibinabalik ang bilang ng araw ng linggo: Lunes - 0, Martes - 1 |
14 | WEEKOFYEAR() | Ibinabalik ang bilang ng linggo ng taon |
15 | ARAW SA ISANG LINGGO() | Ibinabalik ang bilang ng araw ng linggo: Linggo - 1, Lunes - 2 |
16 | DAYOFYEAR() | Ibinabalik ang araw ng taon: 1-366 |
17 | DATE() | Ibinabalik lamang ang petsa mula sa isang bagay na "datetime". |
18 | ADDDATE() | Nagdaragdag ng mga araw sa isang petsa |
19 | SUBDATE() | Nagbabawas ng mga araw mula sa isang petsa |
20 | ADDTIME() | Nagdadagdag ng oras-oras |
21 | SUBTIME() | Ibinabawas ang oras mula sa oras |
Sinadya kong i-grupo ang mga function sa maliliit na grupo para mas madaling maunawaan kung paano magtrabaho sa kanila. Sa ibaba ay isasaalang-alang natin ang isang function mula sa bawat pangkat.
Makakahanap ka ng kumpletong listahan ng mga function para sa pagtatrabaho sa petsa at oras sa link: https://dev.mysql.com/doc/refman/8.0/en/date-and-time-functions.html
3.2 Mga function ng pagtawag
Oo nga pala, dahil marami kaming natututunan na function, sa tingin ko ay nakakatulong na banggitin na ang operator ay SELECT
hindi kailangang gamitin sa FROM
. Maaari nitong ibalik ang halaga ng anumang expression. Ang pangkalahatang view kung saan ay ibinigay ng template:
SELECT expression
At kung gusto mong tumawag ng ilang function, kailangan mong magsulat ng code tulad ng:
SELECT function(options)
Sa ibaba ay magbibigay ako ng ilang mga halimbawa ng pagpapatakbo ng operator SELECT
nang walang recourse sa mga talahanayan:
# | Hiling | Resulta |
---|---|---|
1 | PUMILI 1+1 | 2 |
2 | PUMILI 13 MOD 5 | 3 |
3 | PUMILI NG RAND() | 0.20771444235715497 |
4 | PUMILI NG CURDATE() | 2022-06-04 |
5 | PUMILI NG CURTIME() | 00:06:02 |
6 | PUMILI NGAYON() | 2022-06-04 00:06:43 |
At, tulad ng nakikita mo, sa talahanayan sa itaas, upang makuha ang kasalukuyang petsa at oras, kailangan mo lamang gamitin ang isa sa mga function:
CURDATE()
- kasalukuyang petsa;CURTIME()
- oras ngayon;NOW()
– kasalukuyang petsa at oras.
3.3 Pagpapangkat ng data ayon sa taon at buwan
Alalahanin natin ang talahanayan ng gawain na may mga gawain para sa mga empleyado. Subukan nating pangkatin ang mga gawain mula sa talahanayang ito ayon sa mga taon. Upang gawin ito, ginagamit namin ang function YEAR()
, na nagbabalik ng taon mula sa petsang ipinasa dito.
Ang unang bersyon ng aming query ay magiging ganito:
SELECT
id,
employee_id ,
name,
YEAR(deadline) AS year,
deadline
FROM task
Ang magiging resulta ng query na ito ay:
id | employee_id | pangalan | taon | deadline |
---|---|---|---|---|
1 | 1 | Ayusin ang isang bug sa frontend | 2022 | 2022-06-01 |
2 | 2 | Ayusin ang isang bug sa backend | 2022 | 2022-06-15 |
3 | 5 | Bumili ng kape | 2022 | 2022-07-01 |
4 | 5 | Bumili ng kape | 2022 | 2022-08-01 |
5 | 5 | Bumili ng kape | 2022 | 2022-09-01 |
6 | (WALA) | Linisin ang opisina | (WALA) | (WALA) |
7 | 4 | Masiyahan sa buhay | (WALA) | (WALA) |
8 | 6 | Masiyahan sa buhay | (WALA) | (WALA) |
Makikita natin na ang lahat ng row ay may parehong taon, kaya gumamit tayo ng dalawang field - taon at buwan. Ang pangalawang bersyon ng aming query ay magiging ganito:
SELECT
id,
employee_id ,
name,
YEAR(deadline) AS year,
MONTH(deadline) AS month,
deadline
FROM task
Ang magiging resulta ng query na ito ay:
id | employee_id | pangalan | taon | buwan | deadline |
---|---|---|---|---|---|
1 | 1 | Ayusin ang isang bug sa frontend | 2022 | 6 | 2022-06-01 |
2 | 2 | Ayusin ang isang bug sa backend | 2022 | 6 | 2022-06-15 |
3 | 5 | Bumili ng kape | 2022 | 7 | 2022-07-01 |
4 | 5 | Bumili ng kape | 2022 | 8 | 2022-08-01 |
5 | 5 | Bumili ng kape | 2022 | 9 | 2022-09-01 |
6 | (WALA) | Linisin ang opisina | (WALA) | (WALA) | (WALA) |
7 | 4 | Masiyahan sa buhay | (WALA) | (WALA) | (WALA) |
8 | 6 | Masiyahan sa buhay | (WALA) | (WALA) | (WALA) |
Hindi ko sasabihin sa iyo kung paano ipangkat ang mga gawain ayon sa taon at buwan - napag-aralan mo na ito: gamitin ang operator GROUP BY
.
GO TO FULL VERSION