규칙

표현식 내에서 타입을 변환해야 할 때 자동으로 해당 타입으로 변환하는 것을 묵시적 타입 변환(implicit type conversion)이라고 한다. SET, MULTISET, LIST, SEQUENCE는 명시적으로 변환되어야 한다.

DATETIME, TIMESTAMP 타입을 DATE 타입이나 TIME 타입으로 변환하면 데이터의 일부가 유실될 수 있다. DATE 타입을 DATETIME 타입이나 TIMESTAMP 타입으로 변환하면, 시간은 '12:00:00: AM'으로 설정된다.

문자열 타입이나 정확한 수치형 타입을 부동소수점 수치형 타입으로 변환하면 정확하지 않을 수 있다. 이는 문자열 타입과 정확한 수치형 타입은 값을 표현하기 위해 십진 정밀도(decimal precision)를 사용하지만 부동소수점 수치형 타입은 이진 정밀도(binary precision)를 사용하기 때문이다.

CUBRID가 수행하는 묵시적 타입 변환은 다음과 같다.

묵시적 타입 변환 표 1

From \ To

DATETIME

DATE

TIME

TIMESTAMP

DOUBLE

FLOAT

NUMERIC

BIGINT

DATETIME

-

O

O

O

DATE

O

-

O

TIME

-

TIMESTAMP

O

O

O

-

DOUBLE

-

O

O

O

FLOAT

O

-

O

O

NUMERIC

O

O

-

O

BIGINT

O

O

O

-

INT

O

O

O

O

SHORT

O

O

O

O

MONETARY

O

O

O

O

BIT

VARBIT

CHAR

O

O

O

O

O

O

O

O

VARCHAR

O

O

O

O

O

O

O

O

NCHAR

O

O

O

O

O

O

O

O

VARNCHAR

O

O

O

O

O

O

O

O

묵시적 타입 변환 표 2

From \ To

INT

SHORT

MONETARY

BIT

VARBIT

CHAR

VARCHAR

NCHAR

VARNCHAR

DATETIME

O

O

O

O

DATE

O

O

O

O

TIME

O

O

O

O

TIMESTAMP

O

O

O

O

DOUBLE

O

O

O

O

O

O

O

FLOAT

O

O

O

O

O

O

O

NUMERIC

O

O

O

O

O

O

O

BIGINT

O

O

O

O

O

O

O

INT

-

O

O

O

O

O

O

SHORT

O

-

O

O

O

O

O

MONETARY

O

O

-

O

O

O

O

BIT

-

O

O

O

O

O

VARBIT

O

-

O

O

O

O

CHAR

O

O

O

O

O

-

O

O

O

VARCHAR

O

O

O

O

O

O

-

O

O

NCHAR

O

O

O

O

O

O

O

-

O

VARNCHAR

O

O

O

O

O

O

O

O

-