[DATABASE] BUILD IN FUNCTIONS

์„ฑ์žฅ์ผ๊ธฐยท2024๋…„ 7์›” 5์ผ

[SWCAMP] DB

๋ชฉ๋ก ๋ณด๊ธฐ
12/14

BUILD IN FUNCTIONS

๐Ÿ’ก MySQL์€ ๋ฌธ์ž์—ด, ์ˆซ์ž, ๋‚ ์งœ, ์‹œ๊ฐ„์— ๊ด€ํ•œ ๋‹ค์–‘ํ•œ ์ž‘์—… ์ˆ˜ํ–‰์— ๋งŽ์€ ๋‚ด์žฅ ํ•จ์ˆ˜๋ฅผ ์ œ๊ณตํ•œ๋‹ค.

๋ฌธ์ž์—ด ๊ด€๋ จ ํ•จ์ˆ˜

  • ASCII(์•„์Šคํ‚ค ์ฝ”๋“œ), CHAR(์ˆซ์ž)

  • ASCII: ์•„์Šคํ‚ค ์ฝ”๋“œ ๊ฐ’ ์ถ”์ถœ
    CHAR: ์•„์Šคํ‚ค ์ฝ”๋“œ๋กœ ๋ฌธ์ž ์ถ”์ถœ

  • Workbench์˜ ๋ฒ„๊ทธ๋กœ CHAR(65)์˜ ๊ฒฐ๊ณผ๊ฐ€ 'BLOB'์œผ๋กœ ๋ณด์ผ ์ˆ˜ ์žˆ๋Š”๋ฐ ์ผ๋ฐ˜ ๋ช…๋ นํ˜• ๋ชจ๋“œ์—์„œ๋Š” ์ •์ƒ์ ์œผ๋กœ 'A'๋กœ ์ถœ๋ ฅ๋œ๋‹ค. 'BLOB' ๊ธ€์ž์—์„œ ๋งˆ์šฐ์Šค ์˜ค๋ฅธ์ชฝ ๋ฒ„ํŠผ ํด๋ฆญํ•˜๊ณ  'Open Value in Viewer' ์„ ํƒ ํ›„ Text ํƒญ์—์„œ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

    SELECT ASCII('A'), CHAR(65);

    ์‹คํ–‰๊ฒฐ๊ณผ

  • BIT_LENGTH(๋ฌธ์ž์—ด), CHAR_LENGTH(๋ฌธ์ž์—ด), LENGTH(๋ฌธ์ž์—ด)

  • BIT_LENGTH: ํ• ๋‹น๋œ ๋น„ํŠธ ํฌ๊ธฐ ๋ฐ˜ํ™˜

  • CHAR_LENGTH: ๋ฌธ์ž์—ด์˜ ๊ธธ์ด ๋ฐ˜ํ™˜

  • LENGTH: ํ• ๋‹น๋œ BYTE ํฌ๊ธฐ ๋ฐ˜ํ™˜`

    SELECT BIT_LENGTH('pie'), CHAR_LENGTH('pie'), LENGTH('pie');
    SELECT menu_name, BIT_LENGTH(menu_name), CHAR_LENGTH(menu_name), LENGTH(menu_name) from tbl_menu;

    ์‹คํ–‰๊ฒฐ๊ณผ

  • CONCAT(๋ฌธ์ž์—ด1, ๋ฌธ์ž์—ด2, ...), CONCAT_WS(๊ตฌ๋ถ„์ž, ๋ฌธ์ž์—ด1, ๋ฌธ์ž์—ด2, ...)

  • CONCAT: ๋ฌธ์ž์—ด์„ ์ด์–ด๋ถ™์ž„
    CONCAT_WS: ๊ตฌ๋ถ„์ž์™€ ํ•จ๊ป˜ ๋ฌธ์ž์—ด์„ ์ด์–ด๋ถ™์ž„

    SELECT CONCAT('ํ˜ธ๋ž‘์ด', '๊ธฐ๋ฆฐ', 'ํ† ๋ผ');
    SELECT CONCAT_WS(',', 'ํ˜ธ๋ž‘์ด', '๊ธฐ๋ฆฐ', 'ํ† ๋ผ');
    SELECT CONCAT_WS('-', '2023', '05', '31');

    ์‹คํ–‰๊ฒฐ๊ณผ

  • ELT(์œ„์น˜, ๋ฌธ์ž์—ด1, ๋ฌธ์ž์—ด2, ...), FIELD(์ฐพ์„ ๋ฌธ์ž์—ด, ๋ฌธ์ž์—ด1, ๋ฌธ์ž์—ด2, ...), FIND_IN_SET(์ฐพ์„ ๋ฌธ์ž์—ด, ๋ฌธ์ž์—ด ๋ฆฌ์ŠคํŠธ), INSTR(๊ธฐ์ค€ ๋ฌธ์ž์—ด, ๋ถ€๋ถ„ ๋ฌธ์ž์—ด), LOCATE(๋ถ€๋ถ„ ๋ฌธ์ž์—ด, ๊ธฐ์ค€ ๋ฌธ์ž์—ด)

  • ELT: ํ•ด๋‹น ์œ„์น˜์˜ ๋ฌธ์ž์—ด ๋ฐ˜ํ™˜
    FIELD: ์ฐพ์„ ๋ฌธ์ž์—ด ์œ„์น˜ ๋ฐ˜ํ™˜
    FIND_IN_SET: ์ฐพ์„ ๋ฌธ์ž์—ด์˜ ์œ„์น˜ ๋ฐ˜ํ™˜
    INSTR: ๊ธฐ์ค€ ๋ฌธ์ž์—ด์—์„œ ๋ถ€๋ถ„ ๋ฌธ์ž์—ด์˜ ์‹œ์ž‘ ์œ„์น˜ ๋ฐ˜ํ™˜
    LOCATE: INSTR๊ณผ ๋™์ผํ•˜๊ณ  ์ˆœ์„œ๋Š” ๋ฐ˜๋Œ€

    SELECT 
           ELT(2, '์‚ฌ๊ณผ', '๋”ธ๊ธฐ', '๋ฐ”๋‚˜๋‚˜')
         , FIELD('๋”ธ๊ธฐ', '์‚ฌ๊ณผ', '๋”ธ๊ธฐ', '๋ฐ”๋‚˜๋‚˜')
         , FIND_IN_SET('๋ฐ”๋‚˜๋‚˜', '์‚ฌ๊ณผ,๋”ธ๊ธฐ,๋ฐ”๋‚˜๋‚˜')
         , INSTR('์‚ฌ๊ณผ๋”ธ๊ธฐ๋ฐ”๋‚˜๋‚˜', '๋”ธ๊ธฐ') 
         , LOCATE('๋”ธ๊ธฐ', '์‚ฌ๊ณผ๋”ธ๊ธฐ๋ฐ”๋‚˜๋‚˜');

    ์‹คํ–‰๊ฒฐ๊ณผ

  • FORMAT(์ˆซ์ž, ์†Œ์ˆ˜์  ์ž๋ฆฟ์ˆ˜)

  • FORMAT: 1000๋‹จ์œ„๋งˆ๋‹ค ์ฝค๋งˆ(,) ํ‘œ์‹œ๋ฅผ ํ•ด ์ฃผ๋ฉฐ ์†Œ์ˆ˜์  ์•„๋ž˜ ์ž๋ฆฟ์ˆ˜(๋ฐ˜์˜ฌ๋ฆผ)๊นŒ์ง€ ํ‘œํ˜„ํ•œ๋‹ค.

    SELECT FORMAT(123142512521.5635326, 3);

    ์‹คํ–‰๊ฒฐ๊ณผ

  • BIN(์ˆซ์ž), OCT(์ˆซ์ž), HEX(์ˆซ์ž)

  • BIN: 2์ง„์ˆ˜ ํ‘œํ˜„
    OCT: 8์ง„์ˆ˜ ํ‘œํ˜„
    HEX: 16์ง„์ˆ˜ ํ‘œํ˜„

    SELECT BIN(65), OCT(65), HEX(65);

    ์‹คํ–‰๊ฒฐ๊ณผ

  • INSERT(๊ธฐ์ค€ ๋ฌธ์ž์—ด, ์œ„์น˜, ๊ธธ์ด, ์‚ฝ์ž…ํ•  ๋ฌธ์ž์—ด)

  • INSERT: ๊ธฐ์ค€ ๋ฌธ์ž์—ด์˜ ์œ„์น˜๋ถ€ํ„ฐ ๊ธธ์ด๋งŒํผ์„ ์ง€์šฐ๊ณ  ์‚ฝ์ž…ํ•  ๋ฌธ์ž์—ด์„ ๋ผ์›Œ ๋„ฃ๋Š”๋‹ค.

    SELECT INSERT('๋‚ด ์ด๋ฆ„์€ ์•„๋ฌด๊ฐœ์ž…๋‹ˆ๋‹ค.', 7, 3, 'ํ™๊ธธ๋™');

    ์‹คํ–‰๊ฒฐ๊ณผ

  • LEFT(๋ฌธ์ž์—ด, ๊ธธ์ด), RIGHT(๋ฌธ์ž์—ด, ๊ธธ์ด)

  • LEFT: ์™ผ์ชฝ์—์„œ ๋ฌธ์ž์—ด์˜ ๊ธธ์ด๋งŒํผ์„ ๋ฐ˜ํ™˜
    RIGHT: ์˜ค๋ฅธ์ชฝ์—์„œ ๋ฌธ์ž์—ด์˜ ๊ธธ์ด๋งŒํผ์„ ๋ฐ˜ํ™˜

    SELECT LEFT('Hello World!', 3), RIGHT('Hello World!', 3);

    ์‹คํ–‰๊ฒฐ๊ณผ

  • UPPER(๋ฌธ์ž์—ด), LOWER(๋ฌธ์ž์—ด)

  • UPPER: ์†Œ๋ฌธ์ž๋ฅผ ๋Œ€๋ฌธ์ž๋กœ ๋ณ€๊ฒฝ
    LOWER: ๋Œ€๋ฌธ์ž๋ฅผ ์†Œ๋ฌธ์ž๋กœ ๋ณ€๊ฒฝ

    SELECT LOWER('Hello World!'), UPPER('Hello World!');

    ์‹คํ–‰๊ฒฐ๊ณผ

  • LPAD(๋ฌธ์ž์—ด, ๊ธธ์ด, ์ฑ„์šธ ๋ฌธ์ž์—ด), RPAD(๋ฌธ์ž์—ด, ๊ธธ์ด, ์ฑ„์šธ ๋ฌธ์ž์—ด)

  • LPAD: ๋ฌธ์ž์—ด์„ ๊ธธ์ด๋งŒํผ ์™ผ์ชฝ์œผ๋กœ ๋Š˜๋ฆฐ ํ›„์— ๋นˆ ๊ณณ์„ ๋ฌธ์ž์—ด๋กœ ์ฑ„์šด๋‹ค.
    RPAD: ๋ฌธ์ž์—ด์„ ๊ธธ์ด๋งŒํผ ์˜ค๋ฅธ์ชฝ์œผ๋กœ ๋Š˜๋ฆฐ ํ›„์— ๋นˆ ๊ณณ์„ ๋ฌธ์ž์—ด๋กœ ์ฑ„์šด๋‹ค.

    SELECT LPAD('์™ผ์ชฝ', 6, '@'), RPAD('์˜ค๋ฅธ์ชฝ', 6 ,'@');

    ์‹คํ–‰๊ฒฐ๊ณผ

  • LTRIM(๋ฌธ์ž์—ด), RTRIM(๋ฌธ์ž์—ด)

  • LTRIM: ์™ผ์ชฝ ๊ณต๋ฐฑ ์ œ๊ฑฐ
    RTRIM: ์˜ค๋ฅธ์ชฝ ๊ณต๋ฐฑ ์ œ๊ฑฐ

    SELECT LTRIM('    ์™ผ์ชฝ'), RTRIM('์˜ค๋ฅธ์ชฝ    ');

    ์‹คํ–‰๊ฒฐ๊ณผ

  • TRIM(๋ฌธ์ž์—ด), TRIM(๋ฐฉํ–ฅ ์ž๋ฅผ_๋ฌธ์ž์—ด FROM ๋ฌธ์ž์—ด)

  • TRIM: TRIM์€ ๊ธฐ๋ณธ์ ์œผ๋กœ ์•ž๋’ค ๊ณต๋ฐฑ์„ ์ œ๊ฑฐํ•˜์ง€๋งŒ ๋ฐฉํ–ฅ(LEADING(์•ž), BOTH(์–‘์ชฝ), TRAILING(๋’ค))์ด ์žˆ์œผ๋ฉด ํ•ด๋‹น ๋ฐฉํ–ฅ์— ์ง€์ •ํ•œ ๋ฌธ์ž์—ด์„ ์ œ๊ฑฐํ•  ์ˆ˜ ์žˆ๋‹ค.

    SELECT TRIM('    MySQL    '), TRIM(BOTH '@' FROM '@@@@MySQL@@@@');

    ์‹คํ–‰๊ฒฐ๊ณผ

  • REPEAT(๋ฌธ์ž์—ด, ํšŸ์ˆ˜)

  • REPEAT: ๋ฌธ์ž์—ด์„ ํšŸ์ˆ˜๋งŒํผ ๋ฐ˜๋ณต

    SELECT REPEAT('์žฌ๋ฐŒ์–ด', 3);

    ์‹คํ–‰๊ฒฐ๊ณผ

  • REPLACE(๋ฌธ์ž์—ด, ์ฐพ์„ ๋ฌธ์ž์—ด, ๋ฐ”๊ฟ€ ๋ฌธ์ž์—ด)

  • REPLACE: ๋ฌธ์ž์—ด์—์„œ ๋ฌธ์ž์—ด์„ ์ฐพ์•„ ์น˜ํ™˜

    SELECT REPLACE('๋งˆ์ดSQL', '๋งˆ์ด', 'My');

    ์‹คํ–‰๊ฒฐ๊ณผ

  • REVERSE(๋ฌธ์ž์—ด)

  • REVERSE: ๋ฌธ์ž์—ด์˜ ์ˆœ์„œ๋ฅผ ๊ฑฐ๊พธ๋กœ ๋’ค์ง‘์Œ

    SELECT REVERSE('stressed');

    ์‹คํ–‰๊ฒฐ๊ณผ

  • SPACE(๊ธธ์ด)

  • SPACE: ๊ธธ์ด ๋งŒํผ์˜ ๊ณต๋ฐฑ์„ ๋ฐ˜ํ™˜

    SELECT CONCAT('์ œ ์ด๋ฆ„์€', SPACE(5), '์ด๊ณ  ๋‚˜์ด๋Š”', SPACE(3), '์„ธ์ž…๋‹ˆ๋‹ค.');

    ์‹คํ–‰๊ฒฐ๊ณผ

  • SUBSTRING(๋ฌธ์ž์—ด, ์‹œ์ž‘์œ„์น˜, ๊ธธ์ด)

  • SUBSTRING: ์‹œ์ž‘ ์œ„์น˜๋ถ€ํ„ฐ ๊ธธ์ด๋งŒํผ์˜ ๋ฌธ์ž๋ฅผ ๋ฐ˜ํ™˜(๊ธธ์ด๋ฅผ ์ƒ๋žตํ•˜๋ฉด ์‹œ์ž‘ ์œ„์น˜๋ถ€ํ„ฐ ๋๊นŒ์ง€ ๋ฐ˜ํ™˜)

    SELECT SUBSTRING('์•ˆ๋…•ํ•˜์„ธ์š” ๋ฐ˜๊ฐ‘์Šต๋‹ˆ๋‹ค.', 7, 2), SUBSTRING('์•ˆ๋…•ํ•˜์„ธ์š” ๋ฐ˜๊ฐ‘์Šต๋‹ˆ๋‹ค.', 7);

    ์‹คํ–‰๊ฒฐ๊ณผ

  • SUBSTRING_INDEX(๋ฌธ์ž์—ด, ๊ตฌ๋ถ„์ž, ํšŸ์ˆ˜)

  • SUBSTRING_INDEX: ๊ตฌ๋ถ„์ž๊ฐ€ ์™ผ์ชฝ๋ถ€ํ„ฐ ํšŸ์ˆ˜ ๋ฒˆ์จฐ ๋‚˜์˜ค๋ฉด ๊ทธ ์ดํ›„์˜ ์˜ค๋ฅธ์ชฝ์€ ๋ฒ„๋ฆฐ๋‹ค. ํšŸ์ˆ˜๊ฐ€ ์Œ์ˆ˜์ผ ๊ฒฝ์šฐ ์˜ค๋ฅธ์ชฝ๋ถ€ํ„ฐ ์„ธ๊ณ  ์™ผ์ชฝ์„ ๋ฒ„๋ฆฐ๋‹ค.

    SELECT SUBSTRING_INDEX('hong.test@gmail.com', '.', 2), SUBSTRING_INDEX('hong.test@gmail.com', '.', -2);

    ์‹คํ–‰๊ฒฐ๊ณผ

์ˆซ์ž ๊ด€๋ จ ํ•จ์ˆ˜

  • ABS(์ˆซ์ž)

  • ABS: ์ ˆ๋Œ€๊ฐ’ ๋ฐ˜ํ™˜

    SELECT ABS(-123);

    ์‹คํ–‰๊ฒฐ๊ณผ

  • CEILING(์ˆซ์ž), FLOOR(์ˆซ์ž), ROUND(์ˆซ์ž)

  • CEILING: ์˜ฌ๋ฆผ๊ฐ’ ๋ฐ˜ํ™˜
    FLOOR: ๋ฒ„๋ฆผ๊ฐ’ ๋ฐ˜ํ™˜
    ROUND: ๋ฐ˜์˜ฌ๋ฆผ๊ฐ’ ๋ฐ˜ํ™˜

    SELECT CEILING(1234.56), FLOOR(1234.56), ROUND(1234.56);

    ์‹คํ–‰๊ฒฐ๊ณผ

  • CONV(์ˆซ์ž, ์›๋ž˜ ์ง„์ˆ˜, ๋ณ€ํ™˜ํ•  ์ง„์ˆ˜)

  • CONV: ์›๋ž˜ ์ง„์ˆ˜์—์„œ ๋ณ€ํ™˜ํ•˜๊ณ ์ž ํ•˜๋Š” ์ง„์ˆ˜๋กœ ๋ณ€ํ™˜

    SELECT CONV('A', 16, 10), CONV('A', 16, 2), CONV(1010, 2, 8);

    ์‹คํ–‰๊ฒฐ๊ณผ

  • MOD(์ˆซ์ž1, ์ˆซ์ž2) ๋˜๋Š” ์ˆซ์ž1 % ์ˆซ์ž2 ๋˜๋Š” ์ˆซ์ž1 MOD ์ˆซ์ž2

  • MOD: ์ˆซ์ž 1์„ ์ˆซ์ž 2๋กœ ๋‚˜๋ˆˆ ๋‚˜๋จธ์ง€ ์ถ”์ถœ

    SELECT MOD(75, 10), 75 % 10, 75 MOD 10;

    ์‹คํ–‰๊ฒฐ๊ณผ

  • POW(์ˆซ์ž1, ์ˆซ์ž2), SQRT(์ˆซ์ž)

  • POW: ๊ฑฐ๋“ญ์ œ๊ณฑ๊ฐ’ ์ถ”์ถœ
    SQRT: ์ œ๊ณฑ๊ทผ์„ ์ถ”์ถœ

    SELECT POW(2, 4), SQRT(16);

    ์‹คํ–‰๊ฒฐ๊ณผ

  • RAND()

  • RAND: 0์ด์ƒ 1 ๋ฏธ๋งŒ์˜ ์‹ค์ˆ˜๋ฅผ ๊ตฌํ•œ๋‹ค.
    'm <= ์ž„์˜์˜ ์ •์ˆ˜ < n'์„ ๊ตฌํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด FLOOR((RAND() * (n - m) + m)์„ ์‚ฌ์šฉํ•œ๋‹ค.
    1๋ถ€ํ„ฐ 10๊นŒ์ง€ ๋‚œ์ˆ˜ ๋ฐœ์ƒ: FLOOR(RAND() * (11 - 1) + 1)

    SELECT RAND(), FLOOR(RAND() * (11 - 1) + 1);

    ์‹คํ–‰๊ฒฐ๊ณผ

  • SIGN(์ˆซ์ž)

  • SIGN: ์–‘์ˆ˜๋ฉด 1, 0์ด๋ฉด 0, ์Œ์ˆ˜๋ฉด -1์„ ๋ฐ˜ํ™˜

    SELECT SIGN(10.1), SIGN(0), SIGN(-10.1);

    ์‹คํ–‰๊ฒฐ๊ณผ

  • TRUNCATE(์ˆซ์ž, ์ •์ˆ˜)

  • TRUNCATE: ์†Œ์ˆ˜์ ์„ ๊ธฐ์ค€์œผ๋กœ ์ •์ˆ˜ ์œ„์น˜๊นŒ์ง€ ๊ตฌํ•˜๊ณ  ๋‚˜๋จธ์ง€๋Š” ๋ฒ„๋ฆผ

    SELECT TRUNCATE(12345.12345, 2), TRUNCATE(12345.12345, -2);

    ์‹คํ–‰๊ฒฐ๊ณผ

๋‚ ์งœ ๋ฐ ์‹œ๊ฐ„ ๊ด€๋ จ ํ•จ์ˆ˜

  • ADDDATE(๋‚ ์งœ, ์ฐจ์ด), SUBDATE(๋‚ ์งœ, ์ฐจ์ด)
  • ADDDATE: ๋‚ ์งœ๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์ฐจ์ด๋ฅผ ๋”ํ•จ
    SUBDATE: ๋‚ ์งœ๋ฅผ ๊ธฐ์ค€์œผ๋กœ ๋‚ ์งœ๋ฅผ ๋บŒ
    SELECT ADDDATE('2023-05-31', INTERVAL 30 DAY), ADDDATE('2023-05-31', INTERVAL 6 MONTH);
    SELECT SUBDATE('2023-05-31', INTERVAL 30 DAY), SUBDATE('2023-05-31', INTERVAL 6 MONTH);

    ์‹คํ–‰๊ฒฐ๊ณผ

  • ADDTIME(๋‚ ์งœ/์‹œ๊ฐ„, ์‹œ๊ฐ„), SUBTIME(๋‚ ์งœ/์‹œ๊ฐ„, ์‹œ๊ฐ„)
  • ADDTIME: ๋‚ ์งœ ๋˜๋Š” ์‹œ๊ฐ„์„ ๊ธฐ์ค€์œผ๋กœ ์‹œ๊ฐ„์„ ๋”ํ•จ
    SUBTIME: ๋‚ ์งœ ๋˜๋Š” ์‹œ๊ฐ„์„ ๊ธฐ์ค€์œผ๋กœ ์‹œ๊ฐ„์„ ๋บŒ
    SELECT ADDTIME('2023-05-31 09:00:00', '1:0:1'), SUBTIME('2023-05-31 09:00:00', '1:0:1');

    ์‹คํ–‰๊ฒฐ๊ณผ

  • CURDATE(), CURTIME(), NOW(), SYSDATE()
  • CURDATE: ํ˜„์žฌ ์—ฐ-์›”-์ผ ์ถ”์ถœ
    CURTIME: ํ˜„์žฌ ์‹œ:๋ถ„:์ดˆ ์ถ”์ถœ
    NOW() ๋˜๋Š” SYSDATE(): ํ˜„์žฌ ์—ฐ-์›”-์ผ ์‹œ:๋ถ„:์ดˆ ์ถ”์ถœ
    SELECT CURDATE(), CURTIME(), NOW(), SYSDATE();
    
    -- CURDATE(), CURRENT_DATE(), CURRENT_DATE๋Š” ๋™์ผ
    SELECT CURDATE(), CURRENT_DATE(), CURRENT_DATE;
    
    -- CURTIME(), CURRENT_TIME(), CURRENT_TIME์€ ๋™์ผ 
    SELECT CURTIME(), CURRENT_TIME(), CURRENT_TIME;
    
    -- NOW(), LOCALTIME, LOCALTIME(), LOCALTIMESTAMP, LOCALTIMESTAMP()๋Š” ๋™์ผ
    SELECT NOW(), LOCALTIME, LOCALTIME(), LOCALTIMESTAMP, LOCALTIMESTAMP();

    ์‹คํ–‰๊ฒฐ๊ณผ

  • YEAR(๋‚ ์งœ), MONTH(๋‚ ์งœ), DAYOFMONTH(๋‚ ์งœ),
  • HOUR(์‹œ๊ฐ„), MINUTE(์‹œ๊ฐ„), SECOND(์‹œ๊ฐ„), MICROSECOND(์‹œ๊ฐ„)
    ๋‚ ์งœ ๋˜๋Š” ์‹œ๊ฐ„์—์„œ ์—ฐ, ์›”, ์ผ, ์‹œ, ๋ถ„, ์ดˆ, ๋ฐ€๋ฆฌ์ดˆ๋ฅผ ์ถ”์ถœ
    SELECT YEAR(CURDATE()), MONTH(CURDATE()), DAYOFMONTH(CURDATE());
    SELECT HOUR(CURTIME()), MINUTE(CURTIME()), SECOND(CURRENT_TIME), MICROSECOND(CURRENT_TIME);

    ์‹คํ–‰๊ฒฐ๊ณผ

  • DATE(), TIME()
  • DATE: ์—ฐ-์›”-์ผ๋งŒ ์ถ”์ถœ
    TIME: ์‹œ:๋ถ„:์ดˆ๋งŒ ์ถ”์ถœ
    SELECT DATE(NOW()), TIME(NOW());

    ์‹คํ–‰๊ฒฐ๊ณผ

  • DATEDIFF(๋‚ ์งœ1, ๋‚ ์งœ2), TIMEDIFF(๋‚ ์งœ1 ๋˜๋Š” ์‹œ๊ฐ„1, ๋‚ ์งœ1 ๋˜๋Š” ์‹œ๊ฐ„2)
  • DATEDIFF: ๋‚ ์งœ1 - ๋‚ ์งœ2์˜ ์ผ์ˆ˜๋ฅผ ๋ฐ˜ํ™˜
    TIMEDIFF: ์‹œ๊ฐ„1 - ์‹œ๊ฐ„2์˜ ๊ฒฐ๊ณผ๋ฅผ ๊ตฌํ•จ
    SELECT DATEDIFF('2023-05-31', '2023-02-27'), TIMEDIFF('17:07:11', '13:06:10');

    ์‹คํ–‰๊ฒฐ๊ณผ

  • DAYOFWEEK(๋‚ ์งœ), MONTHNAME(), DAYOFYEAR(๋‚ ์งœ)
  • DAYOFWEEK: ์š”์ผ ๋ฐ˜ํ™˜(1์ด ์ผ์š”์ผ)
    MONTHNAME: ํ•ด๋‹น ๋‹ฌ์˜ ์ด๋ฆ„ ๋ฐ˜ํ™˜
    DAYOFYEAR: ํ•ด๋‹น ๋…„๋„์—์„œ ๋ช‡ ์ผ์ด ํ˜๋ €๋Š”์ง€ ๋ฐ˜ํ™˜
    SELECT DAYOFWEEK(CURDATE()), MONTHNAME(CURDATE()), DAYOFYEAR(CURDATE());

    ์‹คํ–‰๊ฒฐ๊ณผ

  • LAST_DAY(๋‚ ์งœ)
  • LAST_DAY: ํ•ด๋‹น ๋‚ ์งœ์˜ ๋‹ฌ์—์„œ ๋งˆ์ง€๋ง‰ ๋‚ ์˜ ๋‚ ์งœ๋ฅผ ๊ตฌํ•œ๋‹ค.
    SELECT LAST_DAY('20230201');

    ์‹คํ–‰๊ฒฐ๊ณผ

  • MAKEDATE(์—ฐ๋„, ์ •์ˆ˜)
  • MAKEDATE: ํ•ด๋‹น ์—ฐ๋„์˜ ์ •์ˆ˜๋งŒํผ ์ง€๋‚œ ๋‚ ์งœ๋ฅผ ๊ตฌํ•œ๋‹ค.
    SELECT MAKEDATE(2023, 32);

    ์‹คํ–‰๊ฒฐ๊ณผ

  • MAKETIME(์‹œ, ๋ถ„, ์ดˆ)
  • MAKETIME: ์‹œ, ๋ถ„, ์ดˆ๋ฅผ ์ด์šฉํ•ด์„œ '์‹œ:๋ถ„:์ดˆ'์˜ TIME ํ˜•์‹์„ ๋งŒ๋“ ๋‹ค.
    SELECT MAKETIME(17, 03, 02);

    ์‹คํ–‰๊ฒฐ๊ณผ

  • QUARTER(๋‚ ์งœ)
  • QUARTER: ํ•ด๋‹น ๋‚ ์งœ์˜ ๋ถ„๊ธฐ๋ฅผ ๊ตฌํ•จ
    SELECT QUARTER('2023-05-31');

์‹คํ–‰๊ฒฐ๊ณผ

  • TIME_TO_SEC(์‹œ๊ฐ„)
  • TIME_TO_SEC: ์‹œ๊ฐ„์„ ์ดˆ ๋‹จ์œ„๋กœ ๊ตฌํ•จ
    SELECT TIME_TO_SEC('1:1:1');

    ์‹คํ–‰๊ฒฐ๊ณผ

profile
์—”์ง€๋‹ˆ์–ด๋กœ์˜ ์„ฑ์žฅ์ผ์ง€

0๊ฐœ์˜ ๋Œ“๊ธ€