CREATE CAST
目录
CREATE CAST
NAMESYNOPSIS
DESCRIPTION æè¿°
PARAMETERS åæ°
NOTES 注æ
EXAMPLES ä¾å
COMPATIBILITY å¼å®¹æ§
SEE ALSO åè§
è¯è
NAME
CREATE CAST - å®ä¹ä¸ä¸ªç¨æ·å®ä¹ç转æ¢
SYNOPSIS
CREATE CAST
(sourcetype AS targettype)
WITH FUNCTION funcname (argtype)
[ AS ASSIGNMENT | AS IMPLICIT ]
CREATE CAST
(sourcetype AS targettype)
WITHOUT FUNCTION
[ AS ASSIGNMENT | AS IMPLICIT ]
DESCRIPTION æè¿°
CREATE CAST å®ä¹ä¸ä¸ªæ°ç转æ¢ã ä¸ä¸ªè½¬æ¢è¯´æå¦ä½å¨ä¸¤ä¸ªç±»åä¹é´è¿è¡è½¬æ¢ãæ¯å¦ï¼
SELECT CAST(42 AS text);
éè¿è°ç¨åé¢å£°æçä¸ä¸ªå½æ°ï¼ææ´æ°å¸¸é 42 è½¬æ¢æç±»å textï¼ å¨è¿ä¸ªä¾å鿝 text(int4)ãï¼å¦ææ²¡æé¢åå®ä¹å¥½åéç转æ¢ï¼é£ä¹è¿ä¸ªè½¬æ¢å¤±è´¥ãï¼
两ç§ç±»åå¯ä»¥æ¯äºè¿å¶å¼å®¹çï¼ æææ¯å®ä»¬ä¹é´å¯ä»¥"èªç±è½¬æ¢"èä¸ç¨è°ç¨ä»»ä½å½æ°ã è¿å°±éè¦é£ä¸ªå¯¹åºçæ°å¼ä½¿ç¨åæ ·çåé¨è¡¨ç°å½¢å¼ã æ¯å¦ï¼ç±»å text å varchar æ¯äºè¿å¶å¼å®¹çã
ç¼ºçæ¶ï¼åªæå¨æç¡®è¦æ±è½¬æ¢çæåµä¸æè°ç¨ä¸ä¸ªè½¬æ¢ï¼ ä¹å°±æ¯ä¸ä¸ªæç¡®ç CAST(x AS typename)ï¼ x::typenameï¼æè typename(x) æé ã
å¦æè½¬æ¢æ 记为 AS ASSIGNMENTï¼é£ä¹å¨èµä¸ä¸ªæ°å¼ç»ç®æ æ°æ®ç±»åçå- æ®µçæ¶åï¼ å¯ä»¥éå«è°ç¨å®ãæ¯å¦ï¼å设 foo.f1 æ¯ä¸ä¸ªç±»å为 text çå- 段ï¼é£ä¹
INSERT INTO foo (f1) VALUES (42);
妿ä»ç±»å integer å°ç±»å text çè½¬æ¢æ 记为 AS ASSIGNMENTï¼ ä¸é¢çè¿å¥å°±è¢«å许ï¼å¦åå°±ä¸å许ãï¼æä»¬éå¸¸ç¨æ¯è¯- èµå¼è½¬æ¢æ¥æè¿°è¿ç§è½¬æ¢ãï¼
å¦æè½¬æ¢æ 记为 AS IMPLICITï¼é£ä¹å®å°±å¯ä»¥å¨ä»»ä½ç¯å¢éè°ç¨ï¼ ä¸ç®¡æ¯èµå¼è¿æ¯å¨è¡¨è¾¾å¼çåé¨ãæ¯å¦ï¼å 为 || æ¥å text æä½æ°ï¼
SELECT ’The time is ’ || now();
å°åªæå¨ç±»å timestamp å° text çè½¬æ¢æ 记为 AS IMPLICIT çæ¶åæå许ãå¦åæä»¬å°±å¿é¡»æç¡®ä¹¦å转æ¢ï¼ æ¯å¦
SELECT ’The time is ’ || CAST(now() AS text);
ï¼æä»¬éå¸¸ä½¿ç¨æ¯è¯éå«è½¬æ¢æ¥æè¿°è¿ç§ç±»åç转æ¢ãï¼
卿 记转æ¢ä¸ºéå«çè¿ä¸ªé®é¢ä¸ä¿å®ä¸äºæ¯ææºçã è¿äºä¸°å¯çéå«è½¬æ¢è·¯å¾ä¼å¯¼è´ PostgreSQL éæ©è®©äººå¥æªçå½ä»¤çè§£æï¼ æèæ¯å®å¨ä¸è½è§£æå½ä»¤ï¼å 为åå¨å¤ä¸ªå¯è½çè§£æã 䏿¡å¥½çææå®å¾æ¯ï¼åªæå¨åä¸ä¸ªéç¨ç±»å表éé¢çé£äºå¯ä»¥ä¿ç转æ¢ä¿¡æ¯çç±»åä¹é´ææè®°ä¸ºå¯éå«è°ç¨è½¬æ¢ã æ¯å¦ï¼ä» int2 å° int4 å¯ä»¥åçå°æ 记为éå«è½¬æ¢ï¼ä½æ¯ä» float8 å° int4 å¯è½åºè¯¥æ¯æ 记为èµå¼è½¬æ¢ã跨类å表ç转æ¢ï¼æ¯å¦ text å° int4ï¼æå¥½æ¯åªè½æç¡®å°è½¬æ¢ã
è¦æ³å建ä¸ä¸ªè½¬æ¢ï¼ä½å¿é¡»æ¥ææºæèç®çæ°æ®ç±»åãè¦å建ä¸ä¸ªäºè¿å¶å¼å®¹ç转æ¢ï¼ ä½å¿é¡»æ¯è¶çº§ç¨æ·ãï¼åè¿ä¸ªéå¶æ¯å为ä¸ç§æé®é¢çäºè¿å¶å¼å®¹è½¬æ¢å¯ä»¥å¾å®¹ææ§æ¯æå¡å¨ãï¼
PARAMETERS åæ°
sourcetype
转æ¢çæºæ°æ®ç±»åã
targettype
转æ¢çç®æ æ°æ®ç±»åã
funcname(argtype)
ç¨äºæ§è¡è½¬æ¢ç彿°ãè¿ä¸ªå½æ°åå¯ä»¥æ¯ç¨æ¨¡å¼å修饰çã 妿宿²¡æç¨æ¨¡å¼å修饰ï¼é£ä¹è¯¥å½æ°å°ä»è·¯å¾ä¸æ¾åºæ¥ã åæ°ç±»åå¿é¡»åæºæ°æ®ç±»åç¸åï¼ç»ææ°æ®ç±»åå¿é¡»å¹é转æ¢çç®æ ç±»åã
WITHOUT FUNCTION
è¡¨ç¤ºæºæ°æ®ç±»ååç®æ æ°æ®ç±»åæ¯äºè¿å¶å¼å®¹çï¼ æä»¥ä¸éè¦ä»ä¹å½æ°æ¥æ§è¡è½¬æ¢ã
AS ASSIGNMENT
表示转æ¢å¯ä»¥å¨èµå¼ç¯å¢ééå«è°ç¨ã
AS IMPLICIT
表示è¿ä¸ªè½¬æ¢å¯ä»¥å¨ä»»ä½ç¯å¢ééå«è°ç¨ã
NOTES 注æ
ç¨ DROP CAST å é¤ç¨æ·å®ä¹ç转æ¢ã
请注æï¼å¦æä½ æ³è½åå转æ¢ç±»åï¼é£ä¹ä½ éè¦æç¡®å°å®ä¹ä¸¤ä¸ªæ¹åç转æ¢ã
å¨ PostgreSQL 7.3 ä¹åï¼å¦æä¸ä¸ªå½æ°çåååä¸ä¸ªæ°æ®ç±»åç¸åï¼ å¹¶ä¸è¿åè¯¥ç§æ°æ®ç±»åï¼èä¸è¿æ¥åå¦å¤ä¸ç§ç±»åçåæ°èªå¨å°±æ¯ä¸ä¸ªè½¬æ¢å½æ°ã è¿ä¸ªä¼ç»éçæ¨¡å¼çå¼å¥ä»¥å为äºè½å¨ç³»ç»è¡¨ç§è¡¨ç¤ºäºè¿å¶å¼å®¹ç转æ¢å°±è¢«åºå¼äºã ï¼åç½®ç转æ¢å½æ°ä»ç¶éµå¾ªè¿ä¸ªå½åè§åï¼ä½æ¯å®ä»¬ç°å¨å¿é¡»å¨ç³»ç»è¡¨ pg_cast éæ¾ç¤ºä¸ºè½¬æ¢ãï¼
EXAMPLES ä¾å
è¦ä½¿ç¨å½æ° int4(text) å建ä¸ä¸ªä»ç±»å text å°ç±»å int4ç转æ¢ï¼
CREATE CAST (text AS int4) WITH FUNCTION int4(text);
ï¼è¿ä¸ªè½¬æ¢å¨ç³»ç»ä¸å·²ç»é¢åå®ä¹äºãï¼
COMPATIBILITY å¼å®¹æ§
CREATE CAST å½ä»¤éµå¾ª SQL99ï¼åªä¸è¿ SQL99 没ææä¾äºè¿å¶å¼å®¹ç±»åãAS IMPLICIT 乿¯ PostgreSQL çæ©å±ã
SEE ALSO åè§
CREATE FUNCTION [create_function(7)], CREATE TYPE [create_type(7)], DROP CAST [drop_cast(7)]
è¯è
Postgresql
䏿ç½ç«
ä½ä¼å¹³
<laser@pgsqldb.org>.SH è·
æ¬é¡µé¢ä¸æçç±ä¸æ
man
æå页计åæä¾ã
䏿 man
æå页计åï¼https://github.com/man-pages-zh/manpages-zh