๋ฐ์ดํ„ฐ ํƒ€์ž… ๋ณ€ํ™˜ CAST / CONVERT

2025. 2. 23. 14:38ยท๐Ÿ“ SQL/๐Ÿ“

CAST(expr AS type)

CAST(timestamp_value AT TIME ZONE timezone_specifier AS DATETIME)

๋ชจ๋“  ์œ ํ˜•์˜ ํ‘œํ˜„์‹์„ ๊ฐ€์ ธ์™€ ์ง€์ •๋œ ์œ ํ˜•์˜ ๊ฒฐ๊ณผ ๊ฐ’์„ ์ƒ์„ฑ
BINARY[(N)]
VARBINARY ๋ฐ์ดํ„ฐ ํƒ€์ž…์˜ ๋ฌธ์ž์—ด์„ ์ƒ์„ฑ, expr์ด ๋นˆ ๋ฌธ์ž์—ด(๊ธธ์ด 0)์ผ ๊ฒฝ์šฐ ๊ฒฐ๊ณผํƒ€์ž…์€ BINARY(0)์ด ๋œ๋‹ค
N์ด ์ฃผ์–ด์ง„ ๊ฒฝ์šฐ, ์ธ์ˆ˜์˜ ๊ธธ์ด๋ฅผ ์ตœ๋Œ€ N ๋ฐ”์ดํŠธ๊นŒ์ง€ ์‚ฌ์šฉ, N ๋ฐ”์ดํŠธ๋ณด๋‹ค ์งง์œผ๋ฉด 0x00 ๋ฐ”์ดํŠธ๋กœ N ๊ธธ์ด๋งŒํผ ์ฑ„์›Œ(pad)์ค€๋‹ค
N์ด ์ฃผ์–ด์ง€์ง€ ์•Š์€ ๊ฒฝ์šฐ, ํ‘œํ˜„์‹์—์„œ ์ตœ๋Œ€ ๊ธธ์ด๋ฅผ ๊ณ„์‚ฐ → ๊ธธ์ด ๋˜๋Š” N ๊ฐ’์ด ๋‚ด๋ถ€ ์ž„๊ณ„๊ฐ’์„ ์ดˆ๊ณผํ•˜๋ฉด BLOB ํƒ€์ž…, ์—ฌ์ „ํžˆ ๋„ˆ๋ฌด ๊ธธ๋ฉด LONGBLOB ํƒ€์ž…

CHAR[(N)] [charset_info]
VARCHAR ๋ฐ์ดํ„ฐ ํƒ€์ž…์˜ ๋ฌธ์ž์—ด ์ƒ์„ฑ, expr์ด ๋นˆ ๋ฌธ์ž์—ด(๊ธธ์ด 0)์ผ ๊ฒฝ์šฐ ๊ฒฐ๊ณผ ํƒ€์ž…์€ CHAR(0)์ด ๋œ๋‹ค
N์ด ์ฃผ์–ด์ง„ ๊ฒฝ์šฐ, ์ธ์ˆ˜์˜ ๊ธธ์ด๋ฅผ ์ตœ๋Œ€ N ๋ฌธ์ž๊นŒ์ง€ ์‚ฌ์šฉ, ๊ฐ’์˜ ๊ธธ์ด๊ฐ€ N๋ณด๋‹ค ์งง์•„๋„ padding์ด ๋ฐœ์ƒํ•˜์ง€ ์•Š๋Š”๋‹ค
N์ด ์ฃผ์–ด์ง€์ง€ ์•Š์€ ๊ฒฝ์šฐ, ํ‘œํ˜„์‹์—์„œ ์ตœ๋Œ€ ๊ธธ์ด๋ฅผ ์ž๋™์œผ๋กœ ๊ณ„์‚ฐ → ๋‚ด๋ถ€ ์ž„๊ณ„๊ฐ’์„ ์ดˆ๊ณผํ•˜๋ฉด TEXT ํƒ€์ž…, ์—ฌ์ „ํžˆ ๋„ˆ๋ฌด ๊ธธ๋ฉด LONGTEXT ํƒ€์ž…

DATE
๋‚ ์งœ(DATE) ๊ฐ’ ์ƒ์„ฑ

DATETIME[(M)]
๋‚ ์งœ์™€ ์‹œ๊ฐ„(DATETIME) ๊ฐ’ ์ƒ์„ฑ, M์€ ์†Œ์ˆ˜ ์ดˆ์˜ ์ •๋ฐ€๋„๋ฅผ ๋‚˜ํƒ€๋‚ธ๋‹ค

DECIMAL[(M [, D])]
๊ณ ์ • ์†Œ์ˆ˜์  ์ˆซ์ž ์ƒ์„ฑ, M: ์ „์ฒด ์ž๋ฆฟ์ˆ˜(์ •๋ฐ€๋„, ์ตœ๋Œ€ ์ž๋ฆฌ์ˆ˜, ์ƒ๋žต์‹œ 10), D: ์†Œ์ˆ˜์  ์ดํ•˜ ์ž๋ฆฟ์ˆ˜(์ƒ๋žต์‹œ 0)
ex) DECIMAL(5, 2) → ์ตœ๋Œ€ 5์ž๋ฆฌ, ์†Œ์ˆ˜์  ์ดํ•˜ 2์ž๋ฆฌ (999.99๊นŒ์ง€ ์ €์žฅ ๊ฐ€๋Šฅ)

DOUBLE
๋ฐฐ์ •๋ฐ€๋„ ๋ถ€๋™์†Œ์ˆ˜์  ์ˆซ์ž ์ƒ์„ฑ, ๊ณ ์ •๋œ ์ •๋ฐ€๋„ ์—†์Œ(๋” ๋งŽ์€ ์†Œ์ˆ˜์  ์ž๋ฆฟ์ˆ˜ ํ‘œํ˜„ ๊ฐ€๋Šฅ), ๊ณ ์ • ์†Œ์ˆ˜์ (DECIMAL)๋ณด๋‹ค ๋” ํฐ ๋ฒ”์œ„๊ฐ€ ํ•„์š”ํ•  ๋•Œ ์‚ฌ์šฉ

FLOAT[(p)]
๋‹จ์ •๋ฐ€๋„ ๋ถ€๋™์†Œ์ˆ˜์  ์ˆซ์ž ์ƒ์„ฑ, 0 <= p <= 24 → FLOAT, 25 <= p < 53 → DOUBLE, p < 0 ๋˜๋Š” p > 53 → ์—๋Ÿฌ๋ฐœ์ƒ, p ์ƒ๋žต์‹œ ๊ธฐ๋ณธ์ ์œผ๋กœ FLOAT ํƒ€์ž…
ex) FLOAT(20) → FLOAT ํƒ€์ž… / FLOAT(30)→ DOUBLE ํƒ€์ž…

JSON
JSON ๋ฐ์ดํ„ฐ ํƒ€์ž… ์ƒ์„ฑ, ์œ ์—ฐํ•œ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ ํ•„์š”ํ•  ๋•Œ ์‚ฌ์šฉ(๋ฐฐ์—ด, ๊ฐ์ฒด ์ €์žฅ)

NCHAR[(N)]
CHAR๊ณผ ๋น„์Šทํ•˜์ง€๋งŒ ๊ตญ๊ฐ€๋ณ„ ๋ฌธ์ž ์ง‘ํ•ฉ ์‚ฌ์šฉ, N: ์ตœ๋Œ€ ๋ฌธ์ž ๊ฐœ์ˆ˜, ๋‹ค๊ตญ์–ด ์ง€์›์ด ํ•„์š”ํ•œ ๊ฒฝ์šฐ ์‚ฌ์šฉ, CHAR๊ณผ ๋‹ฌ๋ฆฌ ๋ฌธ์ž ์ง‘ํ•ฉ ์ •๋ณด๋ฅผ ๋’ค์— ๋ถ™์ผ ์ˆ˜ ์—†๋‹ค
ex) NCHAR(10) → ์ตœ๋Œ€ 10๋ฌธ์ž ์ €์žฅ

REAL
๋ถ€๋™์†Œ์ˆ˜์ ์„ ์ €์žฅํ•  ๋•Œ ์‚ฌ์šฉ, REAL_AS_FLOAT ๋ชจ๋“œ์— ๋”ฐ๋ผ ํƒ€์ž… ๊ฒฐ์ • → ํ™œ์„ฑํ™”: FLOAT ํƒ€์ž…, ๋น„ํ™œ์„ฑํ™”: DOUBLE ํƒ€์ž…

SIGNED
๋ถ€ํ˜ธ๊ฐ€ ์žˆ๋Š” BIGINT ๊ฐ’ ์ƒ์„ฑ, ์Œ์ˆ˜์™€ ์–‘์ˆ˜ ๋ชจ๋‘ ์ €์žฅ ๊ฐ€๋Šฅ, ํฐ ์ •์ˆ˜ ์ €์žฅํ•ด์•ผ ํ•  ๋•Œ ์‚ฌ์šฉ

spatial_type
๊ณต๊ฐ„(์ง€๋ฆฌ) ๋ฐ์ดํ„ฐ ํƒ€์ž…, CAST()์™€ CONVERT()๋ฅผ ์‚ฌ์šฉํ•ด ๋‹ค์–‘ํ•œ ๊ณต๊ฐ„ ํƒ€์ž… ๊ฐ„ ๋ณ€ํ™˜ ๊ฐ€๋Šฅ, ์œ„์น˜ ์ •๋ณด(์ง€๋ฆฌ ์ขŒํ‘œ, ๋„ํ˜•) ์ €์žฅ

TIME(M)
์‹œ๊ฐ„(TIME) ๊ฐ’์„ ์ƒ์„ฑ, M(์ •๋ฐ€๋„): ์†Œ์ˆ˜ ์ดˆ์˜ ์ž๋ฆฟ์ˆ˜, M  ์ƒ๋žต์‹œ ์ดˆ ๋‹จ์œ„๊นŒ์ง€๋งŒ ํ‘œ์‹œ, M ์ง€์ •์‹œ ์†Œ์ˆ˜ ์ดˆ ํฌํ•จ
ex) TIME(3) → 13:14:40.789 (์†Œ์ˆ˜์  3์ž๋ฆฌ)

UNSIGNED
๋ถ€ํ˜ธ๊ฐ€ ์—†๋Š” BIGINT ๊ฐ’ ์ƒ์„ฑ, ์Œ์ˆ˜๋Š” ์ €์žฅ ๋ถˆ๊ฐ€, ์–‘์ˆ˜๋งŒ ์ €์žฅ ๊ฐ€๋Šฅ, ์–‘์ˆ˜๋งŒ ์ €์žฅํ•ด์•ผ ํ•˜๋Š” ํฐ ์ •์ˆ˜์— ์‚ฌ์šฉ

YEAR
์—ฐ๋„(YEAR) ๊ฐ’ ์ƒ์„ฑ
'0' → 2000 ๋ฆฌํ„ด, '1'~'69' → 2000 ๋”ํ•จ, '70'~'99' → 1900 ๋”ํ•จ, ์ˆซ์ž 0 → 0 ๋ฆฌํ„ด
4์ž๋ฆฌ ์ˆซ์ž(1901~2155) ๋˜๋Š” ํ•ด๋‹น ๋ฒ”์œ„๋กœ ํ•ด์„ ๊ฐ€๋Šฅํ•œ ๋ฌธ์ž์—ด → ํ•ด๋‹น ์—ฐ๋„ ๋ฆฌํ„ด
DATE, DATETIME, TIMESTAMP → ํ•ด๋‹น ๊ฐ’์˜ ์—ฐ๋„ ๋ถ€๋ถ„ ๋ฆฌํ„ด, TIME → ํ˜„์žฌ ์—ฐ๋„ ๋ฆฌํ„ด
ex) YEAR('68') → 2068 / YEAR('72') → 1972
CAST('5' AS UNSIGNED) -- 5
CAST(3 AS TIME) -- 13:29.10.455
CAST('68' AS YEAR) -- 2068

 

 

 

CONVERT(expr USING transcoding_name)

CONVERT(expr, type)

๋ช…์‹œ๋œ ํƒ€์ž…์œผ๋กœ ๋ณ€ํ™˜
CONVERT('test' USING utf8mb4)
CONVERT('test', CHAR CHARACTER SET utf8mb4)
CONVERT(123, CHAR)

 

๋”๋ณด๊ธฐ

CHARACTER SET charset_name์„ ์ง€์ •ํ•˜๋ฉด,

๋ฌธ์ž ์ง‘ํ•ฉ : charset_name

์ •๋ ฌ ๋ฐฉ์‹ : charset_name์˜ ๊ธฐ๋ณธ ์ •๋ ฌ ๋ฐฉ์‹

→ ์˜ˆ์ธก ๊ฐ€๋Šฅํ•œ ๋ฌธ์ž ์ง‘ํ•ฉ๊ณผ ์ •๋ ฌ ๋ฐฉ์‹ ์‚ฌ์šฉ (์ผ๊ด€๋œ ๊ฒฐ๊ณผ๋ฅผ ์›ํ•œ๋‹ค๋ฉด ๋ช…์‹œ์ ์œผ๋กœ ์ง€์ •ํ•˜๊ธฐ)

CHARACTER SET charset_name์„ ์ƒ๋žตํ•˜๋ฉด,

character_set_connection : ๊ธฐ๋ณธ ์—ฐ๊ฒฐ ๋ฌธ์ž ์ง‘ํ•ฉ ์ •์˜

collation_connection : ๊ธฐ๋ณธ ์—ฐ๊ฒฐ ์ •๋ ฌ ๋ฐฉ์‹ ์ •์˜

→  ์„œ๋ฒ„์˜ ๊ธฐ๋ณธ ์„ค์ •์— ๋”ฐ๋ผ ๊ฒฐ์ •

๋ฐ˜์‘ํ˜•

'๐Ÿ“ SQL > ๐Ÿ“' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

๋น„ํŠธ์—ฐ์‚ฐ์ž  (0) 2025.03.07
WITH ๊ณตํ†ต ํ…Œ์ด๋ธ” ํ‘œํ˜„์‹(CTE)  (0) 2025.02.24
MAX()์™€ LIMIT 1  (0) 2025.02.22
LIKE / REGEXP  (0) 2025.02.20
JOIN  (0) 2025.02.19
'๐Ÿ“ SQL/๐Ÿ“' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • ๋น„ํŠธ์—ฐ์‚ฐ์ž
  • WITH ๊ณตํ†ต ํ…Œ์ด๋ธ” ํ‘œํ˜„์‹(CTE)
  • MAX()์™€ LIMIT 1
  • LIKE / REGEXP
leee
leee
  • leee
    LEE
    leee
  • ์ „์ฒด
    ์˜ค๋Š˜
    ์–ด์ œ
    • ์นดํ…Œ๊ณ ๋ฆฌ
      • ๐Ÿ“ QA
        • Test
        • Lecture
      • ๐Ÿ“ SQL
        • ๐Ÿ“
      • ๐Ÿ“ Spring
        • Lecture
        • Error
      • ๐Ÿ“ Github
  • ๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

    • ๐Ÿ 
  • ๋งํฌ

  • ๊ณต์ง€์‚ฌํ•ญ

  • ์ธ๊ธฐ ๊ธ€

  • ํƒœ๊ทธ

    Postman
    ํฌ์ŠคํŠธ๋งจ
    AppConfig
    ์Šคํ”„๋ง ๊ฐ์ฒด์ง€ํ–ฅ
    API test
    SQL_Join
    api ํ…Œ์ŠคํŠธ
    COUNT(*)
    API ์ž๋™ํ™” ํ…Œ์ŠคํŠธ
    mysql_๊ธฐ๊ฐ„_๊ฒ€์ƒ‰
    shift_์—ฐ์‚ฐ์ž
    API Testing
    ์ƒ์„ฑ์ž์ฃผ์ž…
    MySQL
    mysql_join
    ๊นƒํ—ˆ๋ธŒ ์ธํ…”๋ฆฌ์ œ์ด ์—ฐ๋™ ํ•ด์ œ
    mysql_์—ฐ์‚ฐ์ž
    mysql_๋ฐ์ดํ„ฐํƒ€์ž…๋ณ€ํ™˜
    DI ์ปจํ…Œ์ด๋„ˆ
    mismatch
  • ์ตœ๊ทผ ๋Œ“๊ธ€

  • ์ตœ๊ทผ ๊ธ€

  • hELLOยท Designed By์ •์ƒ์šฐ.v4.10.5
leee
๋ฐ์ดํ„ฐ ํƒ€์ž… ๋ณ€ํ™˜ CAST / CONVERT
์ƒ๋‹จ์œผ๋กœ

ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”