DATE_FORMAT(date, format)
์ง์ ๋ ๋๋ก ๋ ์ง ํ์ ์ง์
format ๋ฌธ์์ด์ ๋ฐ๋ผ date ๊ฐ์ ํฌ๋งท
์ธ์ ํ๋๋ผ๋ NULL์ด๋ฉด NULL ๋ฆฌํด
-- 'Monday February 2025'
SELECT DATE_FORMAT('2025-02-17 23:28:30', '%W %M %Y')
-- '22:28:30'
SELECT DATE_FORMAT('2025-02-17 23:28:30', '%H:%i:%s')
-- '22 28 30 11:28:30 PM 23:28:30 30 1'
SELECT DATE_FORMAT('2025-02-17 23:28:30', '%H %k %I %r %T %S %w')
๋ฌธ์ ์
์ธ๋ฑ์ค ์ฌ์ฉ ๋ถ๊ฐ ๊ฐ๋ฅ์ฑ : ํจ์๊ฐ ์ปฌ๋ผ์ ์ ์ฉ๋๋ฏ๋ก ์ธ๋ฑ์ค๋ฅผ ํ์ฉํ ์ ์์
ํ์ ๋ณํ ๋ฌธ์ : DATE_FORMAT()์ ๋ฌธ์์ด(VARCHAR)์ ๋ฐํํ๋ฏ๋ก, ๋ ์ง ์ฐ์ฐ ์ ์ถ๊ฐ์ ์ธ ๋ณํ ํ์
๋ถํ์ํ ๋ฌธ์์ด ์ฐ์ฐ ๋น์ฉ ๋ฐ์ : ์ซ์(๋ ์ง)๋ฅผ ๋ฌธ์์ด๋ก ๋ณํํ๋ ๊ณผ์ ํ์ → ๋๋์ ๋ฐ์ดํฐ๋ฅผ ๋ณํํ ๊ฒฝ์ฐ ์ฟผ๋ฆฌ ์คํ ์๋๊ฐ ๋๋ ค์ง ์ ์์
๋์
-- DATE() ํจ์ ์ฌ์ฉ : DATE(order_date)๋ ์ปฌ๋ผ์ ํจ์๊ฐ ์ ์ฉ๋๋ฏ๋ก ์ธ๋ฑ์ค๋ฅผ ์ ๋๋ก ํ์ฉํ์ง ๋ชปํ ์ ์์
SELECT * FROM orders WHERE DATE(order_date) = '2024-03-14'
-- BETWEEN ๋๋ >= AND <= ์ฌ์ฉ (์ธ๋ฑ์ค ํ์ฉํ ์ ์์ด์ ๊ฐ์ฅ ํจ์จ์ )
SELECT * FROM orders
WHERE order_date BETWEEN '2024-03-14 00:00:00' AND '2024-03-14 23:59:59'
-- CAST() ๋๋ STR_TO_DATE() ํ์ฉ (๋ฐ์ดํฐ ํ์
๋ณํ ์ ์ ์ฉ)
SELECT * FROM orders
WHERE order_date BETWEEN CAST('2024-03-14' AS DATETIME) AND CAST('2024-03-14 23:59:59' AS DATETIME)
-- STR_TO_DATE()๋ ํจ์ ํธ์ถ์ด๋ฏ๋ก ์ธ๋ฑ์ค๋ฅผ ์ ๋๋ก ํ์ฉํ์ง ๋ชปํ ๊ฐ๋ฅ์ฑ
SELECT * FROM orders WHERE order_date = STR_TO_DATE('2024-03-14', '%Y-%m-%d')
** BETWEEN ์ฐ์ฐ์ ์ฌ์ฉ ๋๋ CAST() ํ์ฉ ์ถ์ฒ
YEAR(date), MONTH(date), DAYOFMONTH(date), HOUR(time), MINUTE(time), SECOND(time)
date ๋๋ time์ด NULL์ด๋ฉด NULL ๋ฆฌํด
SELECT YEAR('2025-02-17') -- 2025, range:1000~9999 ๋๋ 0
SELECT MONTH('2025-02-17') -- 2, range:1~12
SELECT DAYOFMONTH('2025-02-17') -- 17, range:1~31 ๋๋ '2025-00-00'์ธ ๊ฒฝ์ฐ 0
SELECT HOUR('23:27:30') -- 23
SELECT HOUR('237:59:59') -- 237
SELECT MINUTE('2025-02-17 23:05:30') -- 5, range:0~59
SELECT SECOND('23:27:30') -- 30, range:0~59
ํน์ ์ฐ๋๋ ์, ์ผ์ ํด๋นํ๋ ๋ฐ์ดํฐ ์กฐํ
1. DATE_FORMAT(date, format)
SELECT * FROM TABLE_NAME
WHERE DATE_FORMAT(DATE, '%Y-%m-%d') = '2025-03-14'
DATE_FORMAT() ํจ์๋ ๋ฌธ์์ด๋ก ์ฒ๋ฆฌ → ํจ์จ์ฑ์ด ๋จ์ด์ง ์ ์๋ค
2. YEAR(date) & MONTH(date) & DAYOFMONTH(date)
SELECT * FROM TABLE_NAME
WHERE YEAR(DATE) = 2025 AND MONTH(DATE) = 3 AND DAYOFMONTH(DATE) = 14
3. BETWEEN ์ฐ์ฐ์
SELECT * FROM TABLE_NAME
WHERE DATE BETWEEN '2025-01-01' AND '2025-03-30'
4. LIKE ์ฐ์ฐ์
SELECT * FROM TABLE_NAME
WHERE DATE_FORMAT(DATE, '%Y-%m') LIKE '2025-03'
5. YEAR() + MONTH()
SELECT * FROM TABLE_NAME
WHERE CONCAT(YEAR(DATE), LPAD(MONTH(DATE), 2, '0')) = '202503'
LPAD(MONTH(DATE), 2, '0') : ์์ ๋ ์๋ฆฌ๋ก ๋ง์ถค
6. TIMESTAMP()
SELECT * FROM TABLE_NAME
WHERE DATE >= '2025-03-14 00:00:00' AND DATE < '2025-03-30 00:00:00'
7. STR_TO_DATE()
SELECT * FROM TABLE_NAME
WHERE STR_TO_DATE(DATE_FORMAT(DATE, '%Y-%m'), '%Y-%m') = '2025-03''๐ SQL > ๐' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| MAX()์ LIMIT 1 (0) | 2025.02.22 |
|---|---|
| LIKE / REGEXP (0) | 2025.02.20 |
| JOIN (0) | 2025.02.19 |
| GROUP BY (0) | 2025.02.19 |
| ์ซ์ ํจ์ (0) | 2025.02.18 |