CAST ??????

CAST??????????????????????????????????????????????????????????????????????????????(?)???NULL???????????????????????????

CAST????????????????????????????????????????????????????????????????????????????????????????????????

??????

CAST ( [ ??? | NULL | ? ]
    AS ????????????)

??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????

CAST?????????SQL-92 ????????????????????????

?????????????????????SQL?????????????????????????????????????????????????????????????????????????????????????????? ???????????????????????????????????????????????????????????????????????????????????????????????? ???????????????????????????????????????????????????????????????????????????????????????????????? Y??????????????????????????????????????????????????????????????????????????????????????? ????????????????????????????????????????????????????????????SMALLINT???????????????????????? ???????????????????????????????????????????????????????????????????????????????????????????????????SMALLINT??????????????????????????????????????????????????????
??? 1. SQL-92 ???????????????????????????????????????????????????????????????????????????
Types

S
M
A
L
L
I
N
T

I
N
T
E
G
E
R

B
I
G
I
N
T

D
E
C
I
M
A
L

R
E
A
L

D
O
U
B
L
E

F
L
O
A
T

C
H
A
R

V
A
R
C
H
A
R

L
O
N
G

V
A
R
C
H
A
R

C
H
A
R

F
O
R

B
I
T

D
A
T
A

V
A
R
C
H
A
R

F
O
R

B
I
T

D
A
T
A

L
O
N
G

V
A
R
C
H
A
R

F
O
R

B
I
T

D
A
T
A

C
L
O
B

B
L
O
B

D
A
T
E

T
I
M
E

T
I
M
E
S
T
A
M
P

X
M
L

SMALLINT Y Y Y Y Y Y Y Y - - - - - - - - - - -
INTEGER Y Y Y Y Y Y Y Y - - - - - - - - - - -
BIGINT Y Y Y Y Y Y Y Y - - - - - - - - - - -
DECIMAL Y Y Y Y Y Y Y Y - - - - - - - - - - -
REAL Y Y Y Y Y Y Y - - - - - - - - - - - -
DOUBLE Y Y Y Y Y Y Y - - - - - - - - - - - -
FLOAT Y Y Y Y Y Y Y - - - - - - - - - - - -
CHAR Y Y Y Y - - - Y Y Y - - - Y - Y Y Y -
VARCHAR Y Y Y Y - - - Y Y Y - - - Y - Y Y Y -
LONG VARCHAR - - - - - - - Y Y Y - - - Y - - - - -
CHAR FOR BIT DATA - - - - - - - - - - Y Y Y Y Y - - - -
VARCHAR FOR BIT DATA - - - - - - - - - - Y Y Y Y Y - - - -
LONG VARCHAR FOR BIT DATA - - - - - - - - - - Y Y Y Y Y - - - -
CLOB - - - - - - - Y Y Y - - - Y - - - - -
BLOB - - - - - - - - - - - - - - Y - - - -
DATE - - - - - - - Y Y - - - - - - Y - - -
TIME - - - - - - - Y Y - - - - - - - Y - -
TIMESTAMP - - - - - - - Y Y - - - - - - Y Y Y -
XML - - - - - - - - - - - - - - - - - - Y

????????????????????????CAST???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????

????????????

?????????????????????Derby??????SQL-92?????????????????????????????????????????????????????????

???????????????????????????

???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????763.1234???INTEGER??????????????????763??????????????????

????????????????????????/??????????????????

??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? ?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????0????????????????????????BLOB?????????????????????????????????????????????????????????????????????????????? ????????????????????????BLOB????????????/?????????????????????????????????

???/???????????????

???/????????????????????????????????????TIMESTAMP???/?????????????????????????????? DATE???TIMESTAMP???????????????????????????????????????TIMESTAMP??????TIME??????????????????00:00:00????????? ??????TIME???TIMESTAMP???????????????????????????????????????TIMESTAMP??????DATE???????????????CAST???????????????????????????CURRENT_DATE???????????????????????? TIMESTAMP???DATE??????????????????????????????TIME??????????????????????????????????????????????????? TIMESTAMP???TIME??????????????????????????????DATE???????????????????????????????????????????????????

SELECT CAST (miles AS INT)
FROM Flights
-- timestamp???????????????????????????
INSERT INTO mytable (text_column)
VALUES (CAST (CURRENT_TIMESTAMP AS VARCHAR(100)))
-- NULL???????????????????????????????????????????????????????????????
SELECT airline
FROM Airlines
UNION ALL
VALUES (CAST (NULL AS CHAR(2)))
-- double???decimal??????????????????
SELECT CAST (FLYING_TIME AS DECIMAL(5,2))
FROM FLIGHTS
-- SMALLINT???BIGINT???????????????
VALUES CAST (CAST (12 as SMALLINT) as BIGINT)

XML????????????

?????????????????????????????????XML?????????XML?????????????????????????????????????????????????????????XML???????????????????????????????????????XMLSERIALIZE ????????????????????????????????????