MySQL의 CAST() 함수는 한 데이터 유형의 값을 표현식에 지정된 다른 데이터 유형으로 변환하는 데 사용됩니다. 주로 WHERE, HAVING, JOIN 절과 함께 사용됩니다. 이 함수는 CONVERT() 함수와 유사합니다. MySQL .
다음은 이 함수가 완벽하게 작동하는 데이터 유형입니다.
데이터 형식 | 설명 |
---|---|
날짜 | 값을 'YYYY-MM-DD' 형식의 DATE 데이터 유형으로 변환합니다. '1000-01-01'부터 '9999-12-31'까지의 DATE 범위를 지원합니다. |
날짜 시간 | 값을 'YYYY-MM-DD HH:MM:SS' 형식의 DATETIME 데이터 유형으로 변환합니다. '1000-01-01 00:00:00' ~ '9999-12-31 23:59:59' 범위를 지원합니다. |
시간 | 해당 값을 'HH:MM:SS' 형식의 TIME 데이터 유형으로 변환합니다. '-838:59:59'부터 '838:59:59'까지의 시간 범위를 지원합니다. |
숯 | 고정 길이 문자열을 포함하는 CHAR 데이터 유형으로 값을 변환합니다. |
소수 | 값을 10진수 문자열을 포함하는 DECIMAL 데이터 유형으로 변환합니다. |
서명됨 | 이는 부호 있는 64비트 정수를 포함하는 SIGNED 데이터 유형으로 값을 변환합니다. |
서명되지 않음 | 이는 부호 없는 64비트 정수를 포함하는 UNSIGNED 데이터 유형으로 값을 변환합니다. |
바이너리 | 값을 이진 문자열이 포함된 BINARY 데이터 유형으로 변환합니다. |
통사론
MySQL의 CAST() 함수 구문은 다음과 같습니다.
CAST(expression AS datatype);
매개변수 설명
이 구문은 아래에서 설명할 두 개의 매개변수를 허용합니다.
매개변수 | 요구 사항 | 설명 |
---|---|---|
표현 | 필수의 | 다른 특정 데이터 유형으로 변환될 값입니다. |
데이터 형식 | 필수의 | 표현식 값을 변환해야 하는 값 또는 데이터 유형입니다. |
반환 값
변환 후에는 변환하려는 데이터 유형의 값이 반환됩니다.
MySQL 버전 지원
CAST 함수는 다음 MySQL 버전을 지원할 수 있습니다.
- MySQL 8.0
- MySQL 5.7
- MySQL 5.6
- MySQL 5.5
- MySQL 5.1
- MySQL 5.0
- MySQL 4.1
- MySQL 4.0
다음 예를 통해 MySQL CAST() 함수를 이해해 보겠습니다. SELECT 문과 함께 CAST 함수를 직접 사용할 수 있습니다.
실시예 1
이 문은 값을 DATE 데이터 유형으로 변환합니다.
SELECT CAST('2018-11-30' AS DATE);
산출
실시예 2
이 명령문은 값을 SIGNED 데이터 유형으로 변환합니다.
SELECT CAST(3-6 AS SIGNED);
산출
실시예 3
이 문은 값을 UNSIGNED 데이터 유형으로 변환합니다.
SELECT CAST(3-6 AS UNSIGNED);
산출
실시예 4
때로는 문자열을 명시적으로 정수로 변환해야 할 필요가 있습니다. 값을 INTEGER 데이터 유형으로 변환하려면 다음 명령문을 사용하십시오.
SELECT (3 + CAST('3' AS SIGNED))/2;
산출
실시예 5
다음 문은 먼저 정수 값을 문자열 데이터 유형으로 변환한 다음 지정된 다른 문자열과 연결을 수행합니다.
SELECT CONCAT('CAST Function Example ## ',CAST(5 AS CHAR));
산출
실시예 6
이 예에서는 CAST 함수가 테이블에서 어떻게 작동하는지 살펴보겠습니다. 먼저 '테이블'을 만들어 보겠습니다. 명령 '에는 다음 데이터가 포함되어 있습니다.
위 표에서 Order_Date가 DATE 데이터 유형임을 알 수 있습니다. 이제 선택한 시간 범위 사이에서 제품 이름을 얻으려면 아래 명령문을 실행하십시오. 여기서는 WHERE 조건을 평가하기 전에 리터럴 문자열이 타임스탬프 값으로 변환됩니다.
SELECT Order_ID, Product_Name FROM Orders WHERE Order_Date BETWEEN CAST('2020-02-01' AS DATETIME) AND CAST('2020-02-28' AS DATETIME);
이 명령문은 다음과 같은 출력을 생성합니다.