1. ๋ฌธ์ ์ค๋ช ๐
(1) ๋งํฌ๐
(2) ํด์ค๐ต
KEY WORD
: ๋ฌธ์์ด ์๋ฅด๊ธฐ
, ์ง๊ณ ํจ์
ํด๋น ๋ฌธ์ ๋ "'YYYY/MM/DD' ํ์์ TIME์์ ์ 4์๋ฆฌ์ ์ฐ๋๋ฅผ ์ง๋ฅผ ์ ์๋๊ฐ?"๋ฅผ ๋ฌป๋ ๋ฌธ์ ์ด๋ค.
2. ๊ตฌํ ์ฝ๋ ๐
A. DATE ๋ฌธ ์ ์ฉ ํจ์ ์ฌ์ฉ
SELECT COUNT(*) AS FISH_COUNT
FROM FISH_INFO
WHERE YEAR(time) = 2021;
B. DATE TYPE์ด ์๋ ๊ฒฝ์ฐ๋ ์ธ ์ ์๋ ํจ์ ํ์ฉ
substr() ํ์ฉ
select count(*) as FISH_COUNT
from FISH_INFO
where substr(time, 1, 4) = '2021';
Like ํ์ฉ
select count(*) as FISH_COUNT
from FISH_INFO
where TIME LIKE '2021%'
ํด๋น ๋ฌธ์ ๋ ์๊ฐ์ ๋ํ๋ด๋ TIME ์ด์ด DATE
TYPE ์ด๊ธฐ ๋๋ฌธ์ DATE Function์ ์ธ ์ ์์๋ค. ๋ง์ฝ ๋จ์ VAR CHAR๋ฌธ์ด๋ฉด subStr()์ด๋ Like๋ฌธ์ ์ฐ๋ ๊ฒ๋ ์ข์ ์ ํ์ด๋ผ ์๊ฐ์ด ๋ ๋ค.
3. DRILING ๐ฏ
(1) DATE type์ ๊ดํ์ฌ
A. DATE type์ ์ข ๋ฅ
DATE
: ๋ ์ง๋งTIME
: ์๊ฐ๋งDATETIME
: ๋ ์ง + ์๊ฐTIMESTAMP
: ๋ ์ง + ์๊ฐ (์ง์ญ ์๊ฐ๋ ๋ฐ์)
B. DATE <-> ๋ฌธ์์ด ํ๋ณํ์ ๋ํ์ฌ
DATE ํจ์๋ฅผ ์ธ ๋ ์ธ์๋ก ๋ฌธ์์ด์ ๋ฃ์ด๋ ์ฑ๋ฆฝํจ์ ์ข ์ข ๋ณผ ์ ์๋ค. (ex- YEAR('2025-05-20')) ์ด๋ฌํ ์ฟผ๋ฆฌ๋ฌธ ์คํ์์ ์ ์ ์๋ฏ์ด DATE์ VAR CHAR ๊ฐ์๋ ๋ฌต์์ ํ๋ณํ์ด ์ด๋ฃจ์ด์ง๋ค. ๋ด๋ถ SQL ์ตํฐ๋ง์ด์ ๋ YEAR('2025-05-20')์ ํจ์๊ฐ ๋ค์ด์ค๋ฉด ๋ด๋ถ์์ CAST(char AS date)์ด๋ผ๋ ํ๋ณํ ํจ์๋ฅผ ๋จผ์ ๋๋ฆฐ ๋ค์ ํจ์๋ฅผ ์คํํ๋ค. (date์์ ๋ฌธ์์ด๋ก ๋ฐ๊พธ๋ ๊ฒฝ์ฐ๋ ๋ง์ฐฌ๊ฐ์ง) ํ์ง๋ง ์ด๋ ๊ฒ ๋ฌต์์ ํ๋ณํ์ ์ํค๋ ค๋ฉด, ๋ฌธ์์ด์ ํํ๋ฅผ ์ ํด์ง date ํ์์ผ๋ก ์ ์ด์ผ ํ๋ค.
DATE type์ ํ ๋ณํ์ด ๊ฐ๋ฅํ VAR CHAR ๊ตฌ๋ฌธ ์์
MySQL์์ ํ์ค DATE์ ํ์์ yyyy-mm-dd
์ด๋ค. ์ด๋ค ํ์์ผ๋ก ์ฟผ๋ฆฌ๋ฌธ์ ์ง๋ , ํ
์ด๋ธ ๋ด์ ์ ์ฅ ํํ๋ yyyy-mm-dd
๋ฅผ ์ด๋ค. ๋ค์์ ๊ฐ๋ฐ์๊ฐ ๊ฐ๋ก๊ฐ์ด ์
๋ ฅํด๋, mySQL์ ์ตํฐ๋ง์ด์ ๊ฐ ์ฐฐ๋ก๊ฐ์ด ์์๋ฃ๋ ์์์ด๋ค.
์ ๋ ฅ ๊ฐ | ๊ฒฐ๊ณผ | ์ค๋ช |
---|---|---|
'2024-04-15' |
2024-04-15 |
๊ธฐ๋ณธ ํ์ |
'20240415' |
2024-04-15 |
์ซ์ํ๋ ํ์ฉ |
'24-4-15' |
2024-04-15 |
์ถ์ฝํ (1์ ์๋ฆฌ ์์ผ ๋ ์์ 0 ๋นผ๋ ๋จ.) |
'2024.04.15' |
2024-04-15 |
๊ตฌ๋ถ์ ๋ณ๊ฒฝ๋ ์๋ ์ธ์ |
'2024/04/15' |
2024-04-15 |
์ฌ๋์๋ ํ์ฉ |
(2) DATE ์ ์ฉ ํจ์ (DATE Function
) ์ ์ ์์ ์ข
๋ฅ
A. ์ ์
DATE
, DATETIME
, TIMESTAMP
๋ฑ ๋ ์ง/ ์๊ฐ ๋ฐ์ดํฐ์์ ์ํ๋ ๋ฐ์ดํฐ๋ฅผ ์ถ์ถํ ์ ์๋๋ก ๋์์ฃผ๋ ํจ์๋ค์ DATE Function ์ด๋ผ ๋ถ๋ฅธ๋ค.
B. DATE ํจ์์ ์ข ๋ฅ
ํจ์ | ์ค๋ช | ์์ | ๊ฒฐ๊ณผ |
---|---|---|---|
YEAR(date) | ์ฐ๋ ์ถ์ถ | YEAR('2025-05-20') | 2025 |
MONTH(date) | ์ ์ถ์ถ | MONTH('2025-05-20') | 5 |
DAY(date) ํน์ DAYOFMONTH(date) | ์ผ ์ถ์ถ | DAY('2025-05-20') | 20 |
DATE(dateTime) | ๋ ์ง๋ง ์ถ์ถ(DATETIME -> DATE ) |
DATE('2025-05-20 12:30:00') | 2025-05-20 |
TIME(dateTime) | ์๊ฐ๋ง ์ถ์ถ (DATETIME -> TIME ) |
TIME('2025-05-20 12:30:00') | 12:30:00 |
HOUR(dateTime) | ์๊ฐ ์ค ์ ๋ง ์ถ์ถ |
HOUR('2025-05-20 12:30:00') | 12 |
MINUTE(date) | ๋ถ ์ถ์ถ | MINUTE('2025-05-20 12:30:00') | 30 |
SECOND(date) | ์ด ์ถ์ถ | SECOND('2025-05-20 12:30:00') | 0 |
DATE_FORMAT(date, format) | ์ํ๋ ํ์์ผ๋ก ๋ณํ | DATE_FORMAT('2025-05-20', '%Y-%M') | '2025-05' |
DATE_FORMAT์์ ์์ผ๋ ์นด๋ ๊ตฌ๋ฌธ์ ์ข ๋ฅ
DATE๋ฅผ ์ํ๋ ํ์์ ๋ฌธ์์ด๋ก ๋ฐ๊ฟ ๋, ์ํ๋ ํ์์ ์์ผ๋ ์นด๋๋ก ๋ฏธ๋ฆฌ ์ ํ ์ ์๋ค.
ํ์ | ์๋ฏธ | ์์ (2024-04-15 13:45:00 ) |
---|---|---|
%Y |
์ฐ๋ (4์๋ฆฌ) | 2024 |
%y |
์ฐ๋ (2์๋ฆฌ) | 24 |
%m |
์ (2์๋ฆฌ) | 04 |
%c |
์ (1~12) | 4 |
%d |
์ผ (2์๋ฆฌ) | 15 |
%e |
์ผ (1~31) | 15 |
%H |
์ (24์๊ฐ์ ) | 13 |
%h / %I |
์ (12์๊ฐ์ ) | 01 |
%i |
๋ถ | 45 |
%s |
์ด | 00 |
(3) ํด๋น ๋ฌธ์ ์์ ๋ฌธ์์ด ํจ์ (subStr() ์ด๋ Like)๋ฅผ ์ฐ๋ฉด ๋๋ฆฐ๊ฐ?
๊ฒฐ๋ก
: ๋๋ ค์ง๋ค!
์์์ ์ดํด๋ณด์๋ฏ์ด ์ปฌ๋ผ ์์ฒด๊ฐ DATE type์ด๋ฉด, ๋ฐ๋ก DATE ํจ์๋ฅผ ์ฐ๋ ๊ฒ์ด ์ ์ผ ๋น ๋ฅด๋ค. ๋ง์ฝ ๋ฌธ์์ด ํจ์๋ฅผ ์ฐ๋ฉด ๋ค์๊ณผ ๊ฐ์ ์ด์ ๋ก ๋๋ ค์ง๋ค.
์ด์
:
- ์๋ฌต์ ํ๋ณํ์ด ์ด๋ฃจ์ด์ง, ์ตํฐ๋ง์ด์ ๊ฐ ๋ด๋ถ์ ์ผ๋ก CAST(date as char) ํจ์๋ฅผ ๋ชจ๋ ํ๋ง๋ค ์คํํด์ผํจ.
- subStr์ ๊ฒฝ์ฐ ํด๋น ๋ถ๋ถ ๋ฌธ์์ด๋งํผ ์๋ก์ด ๋ฌธ์์ด์ ํ๋ง๋ค ๋ง๋ ๋ค. ex(substr(1,4, time) -> ๋ชจ๋ time ์ด์ ๊ฐ์์ ์ 4์๋ฆฌ๋ง ์งค๋ผ์ ์๋ก์ด ๋ฌธ์์ด ์์ฑ)
- ์ดํ ํจ์ ์ฐ์ฐ
์ด๋ชจ์ง ๋ชจ์: ๐ค, โ โจ 0๏ธโฃ1๏ธโฃ2๏ธโฃ3๏ธโฃ4๏ธโฃ5๏ธโฃ6๏ธโฃ7๏ธโฃ8๏ธโฃ9๏ธโฃ๐