@@ -27,18 +27,84 @@ SELECT m - '123.45' FROM money_data;
27
27
-$0.45
28
28
(1 row)
29
29
30
+ SELECT m / '2'::money FROM money_data;
31
+ ?column?
32
+ ----------
33
+ 61.5
34
+ (1 row)
35
+
30
36
SELECT m * 2 FROM money_data;
31
37
?column?
32
38
----------
33
39
$246.00
34
40
(1 row)
35
41
42
+ SELECT 2 * m FROM money_data;
43
+ ?column?
44
+ ----------
45
+ $246.00
46
+ (1 row)
47
+
36
48
SELECT m / 2 FROM money_data;
37
49
?column?
38
50
----------
39
51
$61.50
40
52
(1 row)
41
53
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
+
42
108
-- All true
43
109
SELECT m = '$123.00' FROM money_data;
44
110
?column?
@@ -275,7 +341,7 @@ SELECT '92233720368547758.075'::money;
275
341
ERROR: value "92233720368547758.075" is out of range for type money
276
342
LINE 1: SELECT '92233720368547758.075'::money;
277
343
^
278
- -- Cast int4/int8 to money
344
+ -- Cast int4/int8/numeric to money
279
345
SELECT 1234567890::money;
280
346
money
281
347
-------------------
@@ -318,6 +384,12 @@ SELECT 12345678901234567::int8::money;
318
384
$12,345,678,901,234,567.00
319
385
(1 row)
320
386
387
+ SELECT 12345678901234567::numeric::money;
388
+ money
389
+ ----------------------------
390
+ $12,345,678,901,234,567.00
391
+ (1 row)
392
+
321
393
SELECT (-1234567890)::int4::money;
322
394
money
323
395
--------------------
@@ -330,3 +402,22 @@ SELECT (-12345678901234567)::int8::money;
330
402
-$12,345,678,901,234,567.00
331
403
(1 row)
332
404
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