๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐Ÿ›‹๏ธ ๋ฐ์ดํ„ฐ ๋ถ„์„/๐Ÿ“‚ SQL

DATE ๋‚ ์งœ ํฌ๋งท ๊ด€๋ จ ํ•จ์ˆ˜ : DATE_FORMAT

by ์œ ์Šค :) 2024. 12. 8.
๋ฐ˜์‘ํ˜•

๋ชฉ์ฐจ

 

1. ๋‚ ์งœ ํฌ๋งท 

1) DATE_FORMAT( ) ํ•จ์ˆ˜ 

DATE_FORMAT(๋‚ ์งœ, 'ํ˜•์‹')

DATE_FORMAT(now(), '%Y-%m-%d')

DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i:%s')
-- 2024-11-13 -> 2024-11-13 11:13:24
DATE_FORMAT(NOW(), '%m-%d-%y')
-- 2024-11-13 -> 11-13-24

 

์œ„ ํ•จ์ˆ˜๋Š” ๋‚ ์งœํ˜•์‹์˜ ์ปฌ๋Ÿผ์—์„œ ๋ฌธ์ž์—ด๋กœ ๋ฐ˜ํ™˜ํ•œ๋‹ค. 

 

(1) %๊ธฐํ˜ธ์™€ ๋Œ€์†Œ๋ฌธ์ž์— ๋”ฐ๋ฅธ ํ‘œํ˜„์˜ ์ฐจ์ด

  • %Y : 4์ž๋ฆฌ ์—ฐ๋„, 2024
  • %y : 2์ž๋ฆฌ ์—ฐ๋„, 24
  • %M : ์˜์–ด๋กœ ์›” ํ‘œํ˜„ (January, February, ..)
  • %m : 2์ž๋ฆฌ ์ˆซ์ž๋กœ ์›” ํ‘œํ˜„ (00 ~ 12)
  • %D : ๊ธ€๋กœ ์ผ ํ‘œํ˜„ (1st, 2nd, ..)
  • %d : 2์ž๋ฆฌ ์ˆซ์ž๋กœ ์ผ ํ‘œํ˜„ (00 ~ 31)
  • %H : 24์‹œ๊ฐ„ ํ˜•ํƒœ์˜ ์‹œ (00 ~ 23)
  • %h : 12์‹œ๊ฐ„ ํ˜•ํƒœ์˜ ์‹œ (01 ~ 12)
  • %S, %s : 2์ž๋ฆฌ ํ˜•ํƒœ์˜ ์ดˆ (00 ~ 59)  *๋Œ€์†Œ๋ฌธ์ž ๊ฐ’์ด ๊ฐ™๋‹ค. 
  • %T : hh:mm:ss

์˜ˆ์‹œ) DATE ํƒ€์ž…์„ SELECT๋กœ ๊ฐ€์ ธ์˜ค๋Š” ๊ฒฝ์šฐ 

์˜ˆ๋ฅผ๋“ค์–ด PUBLISHED_DATE ์ปฌ๋Ÿผ์ด DATE TYPE์ผ ๋•Œ ์—ฐ๋„-์›”-์ผ ํ˜•์‹์œผ๋กœ ์ถœ๋ ฅํ•˜๊ณ  ์‹ถ์€ ๊ฒฝ์šฐ,

SELECT DATE_FORMAT(PUBLISHED_DATE, '%Y-%m-%d') AS PUBLISHED_DATE

 

์˜ˆ์‹œ) ํŠน์ • ์กฐ๊ฑด์˜ DATE๋ฅผ ๊ฐ€์ ธ์˜ค๊ณ  ์‹ถ์€ ๊ฒฝ์šฐ (์กฐ๊ฑด์ ˆ์— DATE)

 

1. ํŠน์ • ์—ฐ๋„์— ํ•ด๋‹นํ•˜๋Š” ๋ฐ์ดํ„ฐ๋งŒ ๊ฐ€์ ธ์˜ค๊ณ  ์‹ถ์€ ๊ฒฝ์šฐ

SELECT BOOK_ID, DATE_FORMAT(PUBLISHED_DATE, '%Y-%m-%d') AS PUBLISHED_DATE
FROM BOOK
--๋ฐฉ๋ฒ•1
WHERE Year(PUBLISHED_DATE) = 2021
--๋ฐฉ๋ฒ•2
WHERE REGEXP_LIKE(PUBLISHED_DATE,'^2021')

 

2. ํŠน์ • ๋‹ฌ์— ํ•ด๋‹นํ•˜๋Š” ๋ฐ์ดํ„ฐ๋งŒ ๊ฐ€์ ธ์˜ค๊ณ  ์‹ถ์€ ๊ฒฝ์šฐ

SELECT BOOK_ID, DATE_FORMAT(PUBLISHED_DATE, '%Y-%m-%d') AS PUBLISHED_DATE
FROM BOOK
-- ๋ฐฉ๋ฒ•1
WHERE Month(PUBLISHED_DATE) = 3
-- ๋ฐฉ๋ฒ•2
WHERE PUBLISHED_DATE BETWEEN '2024-03-01' AND '2024-03-31'

 

 

2) YEAR, MONTH, DAY ํ•จ์ˆ˜

SELECT YEAR(DATE) AS YEAR
		, MONTH(DATE) AS MONTH
		, DAY(DATE) AS DAY

 

์œ„ ํ•จ์ˆ˜๋Š” ๋‚ ์งœํ˜•์‹์˜ ์ปฌ๋Ÿผ์—์„œ ์—ฐ๋„/์›”/์ผ์„ ์ •์ˆ˜๋กœ ๋ฐ˜ํ™˜ํ•œ๋‹ค. 

 

๋ฐ˜ํ™˜๊ฐ’์ด ์ •์ˆ˜์ด๋ฏ€๋กœ ๋ฌธ์ž์—ด๊ณผ ํ•ฉ์น˜๊ฒŒ ๋˜๋ฉด ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค. (SELECT YEAR(DATE()) +'๋…„') ๋”ฐ๋ผ์„œ ๋ฌธ์ž์—ด๊ณผ ํ•ฉ์น˜๊ณ  ์‹ถ์€ ๊ฒฝ์šฐ ์•„๋ž˜์™€ ๊ฐ™์ด CONCAT์„ ์‚ฌ์šฉํ•ด์•ผํ•œ๋‹ค. 

SELECT CONCAT(YEAR(DATE()), '๋…„')

 

3) YEAR( ) ํ•จ์ˆ˜์™€ DATE_FORMAT( ) ํ•จ์ˆ˜์˜ ์ฐจ์ด

  • ์ถœ๋ ฅ ํ˜•์‹์˜ ์ฐจ์ด : YEAR( )๋Š” ์ •์ˆ˜ํ˜•(year)์œผ๋กœ ๋ฐ˜ํ™˜ํ•˜๊ณ  DATE_FORMAT()์€ ๋ฌธ์ž์—ดํ˜•์œผ๋กœ ๋ฐ˜ํ™˜ํ•œ๋‹ค .

 

4) YYํ˜•์‹์˜ ์—ฐ๋„๋ฅผ MYSQL์ด ํ•ด์„ํ•˜๋Š” ๋ฐฉ์‹ 

๋˜ํ•œ dateํ˜•์‹ ์ปฌ๋Ÿผ์— ๋“ค์–ด์žˆ๋Š” ๋ฐ์ดํ„ฐ ํ˜•์‹์ด YYYY-MM-DD๊ฐ€ ์•„๋‹ˆ๋ผ YY-MM-DD์ผ ๊ฒฝ์šฐ์—๋Š” ๋ฐ˜ํ™˜๊ฐ’์— ์ฐจ์ด๊ฐ€ ์ƒ๊ธฐ๋Š”๋ฐ, 

MYSQL๊ธฐ์ค€์œผ๋กœ 2 digit์˜ ๊ฒฝ์šฐ YEARํ•จ์ˆ˜๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋ฐ˜ํ™˜ํ•œ๋‹ค. 

  • 00 ~ 69 → 2000 ~  2069
  • 70 ~ 99 → 1970 ~ 1999

*์ฐธ๊ณ  ๊ณต์‹ MYSQL ์ž๋ฃŒ : The YEAR Type, 2-Digit Years in Dates

๋ฐ˜์‘ํ˜•