create schema db_cast;
set current_schema to 'db_cast';
select cast('$2'::money as unsigned);
uint8
-------
2
(1 row)
select cast(cast('$2'::money as unsigned) as money);
money
-------
$2.00
(1 row)
select current_timestamp;
current_timestamp
---------------------
--?.*
(1 row)
select cast('2022-11-10 18:03:20'::timestamp as unsigned);
uint8
----------------
20221111020320
(1 row)
select cast(current_timestamp::timestamp as unsigned);
current_timestamp
-------------------
--?.*
(1 row)
select cast(cast('2022-11-10 18:03:20'::timestamp as unsigned) as timestamp);
timestamptz
------------------------
2022-11-11 02:03:20-08
(1 row)
SELECT CAST('test' AS CHAR CHARACTER SET utf8);
varchar
---------
test
(1 row)
SELECT CAST('test' AS CHAR CHARACTER SET not_exist);
WARNING: not_exist is not a valid encoding name. default value set
varchar
---------
test
(1 row)
SELECT CAST('test' AS nchar CHARACTER SET not_exist);
WARNING: not_exist is not a valid encoding name. default value set
varchar
---------
test
(1 row)
select 2.5::float::int16;
int16
-------
3
(1 row)
select 2.4::float::int16;
int16
-------
2
(1 row)
select 2.4::double::int16;
int16
-------
2
(1 row)
select 2.5::double::int16;
int16
-------
3
(1 row)
set dolphin.b_compatibility_mode to on;
select CAST(9/2 as char);
varchar
--------------------
4.5000000000000000
(1 row)
select CAST('0.12000' AS CHAR);
varchar
---------
0.12000
(1 row)
select CAST('1.203010' AS CHAR);
varchar
----------
1.203010
(1 row)
select CAST('-0.20' AS CHAR);
varchar
---------
-0.20
(1 row)
select CAST(2.090 AS char);
varchar
---------
2.090
(1 row)
select CAST('2.090'::float AS char);
varchar
---------
2.09
(1 row)
select CAST('4.100000'::double precision AS char);
varchar
---------
4.1
(1 row)
select CAST(-6.40100 as char);
varchar
----------
-6.40100
(1 row)
select 0+CAST(9/2 as char);
?column?
----------
4.5
(1 row)
SELECT 0+CAST('0.12000' AS CHAR),0+CAST('1.203010' AS CHAR),0+CAST('-0.20' AS CHAR);
?column? | ?column? | ?column?
----------+----------+----------
0.12 | 1.20301 | -0.2
(1 row)
SELECT (0 + CAST(2.090 AS char))/2;
?column?
----------
1.045
(1 row)
SELECT (0 + CAST('2.090'::float AS char))/2;
?column?
----------
1.045
(1 row)
SELECT (0 + CAST('4.100000'::double precision AS char))/2;
?column?
----------
2.05
(1 row)
select 0+CAST(-6.40100 as char) as res;
res
--------
-6.401
(1 row)
CREATE TABLE data_bytea( c1 bytea);
INSERT INTO data_bytea values('a'::varchar);
INSERT INTO data_bytea values(null::varchar);
set bytea_output=hex;
select * from data_bytea;
c1
------
\x61
(2 rows)
set bytea_output=escape;
select * from data_bytea;
c1
----
a
(2 rows)
drop table data_bytea;
drop schema db_cast cascade;
reset current_schema;