@@ -27,18 +27,84 @@ SELECT m - '123.45' FROM money_data;
2727 -$0.45
2828(1 row)
2929
30+ SELECT m / '2'::money FROM money_data;
31+ ?column?
32+ ----------
33+ 61.5
34+ (1 row)
35+
3036SELECT m * 2 FROM money_data;
3137 ?column?
3238----------
3339 $246.00
3440(1 row)
3541
42+ SELECT 2 * m FROM money_data;
43+ ?column?
44+ ----------
45+ $246.00
46+ (1 row)
47+
3648SELECT m / 2 FROM money_data;
3749 ?column?
3850----------
3951 $61.50
4052(1 row)
4153
54+ SELECT m * 2::int2 FROM money_data;
55+ ?column?
56+ ----------
57+ $246.00
58+ (1 row)
59+
60+ SELECT 2::int2 * m FROM money_data;
61+ ?column?
62+ ----------
63+ $246.00
64+ (1 row)
65+
66+ SELECT m / 2::int2 FROM money_data;
67+ ?column?
68+ ----------
69+ $61.50
70+ (1 row)
71+
72+ SELECT m * 2::float8 FROM money_data;
73+ ?column?
74+ ----------
75+ $246.00
76+ (1 row)
77+
78+ SELECT 2::float8 * m FROM money_data;
79+ ?column?
80+ ----------
81+ $246.00
82+ (1 row)
83+
84+ SELECT m / 2::float8 FROM money_data;
85+ ?column?
86+ ----------
87+ $61.50
88+ (1 row)
89+
90+ SELECT m * 2::float4 FROM money_data;
91+ ?column?
92+ ----------
93+ $246.00
94+ (1 row)
95+
96+ SELECT 2::float4 * m FROM money_data;
97+ ?column?
98+ ----------
99+ $246.00
100+ (1 row)
101+
102+ SELECT m / 2::float4 FROM money_data;
103+ ?column?
104+ ----------
105+ $61.50
106+ (1 row)
107+
42108-- All true
43109SELECT m = '$123.00' FROM money_data;
44110 ?column?
@@ -275,7 +341,7 @@ SELECT '92233720368547758.075'::money;
275341ERROR: value "92233720368547758.075" is out of range for type money
276342LINE 1: SELECT '92233720368547758.075'::money;
277343 ^
278- -- Cast int4/int8 to money
344+ -- Cast int4/int8/numeric to money
279345SELECT 1234567890::money;
280346 money
281347-------------------
@@ -318,6 +384,12 @@ SELECT 12345678901234567::int8::money;
318384 $12,345,678,901,234,567.00
319385(1 row)
320386
387+ SELECT 12345678901234567::numeric::money;
388+ money
389+ ----------------------------
390+ $12,345,678,901,234,567.00
391+ (1 row)
392+
321393SELECT (-1234567890)::int4::money;
322394 money
323395--------------------
@@ -330,3 +402,22 @@ SELECT (-12345678901234567)::int8::money;
330402 -$12,345,678,901,234,567.00
331403(1 row)
332404
405+ SELECT (-12345678901234567)::numeric::money;
406+ money
407+ -----------------------------
408+ -$12,345,678,901,234,567.00
409+ (1 row)
410+
411+ -- Cast from money
412+ SELECT '12345678901234567'::money::numeric;
413+ numeric
414+ ----------------------
415+ 12345678901234567.00
416+ (1 row)
417+
418+ SELECT '-12345678901234567'::money::numeric;
419+ numeric
420+ -----------------------
421+ -12345678901234567.00
422+ (1 row)
423+
0 commit comments