Template patterns for numeric formatting
A sign formatted using SG, PL, or MI is not anchored to the number.
	| Pattern | Description | 
|---|---|
| 9 | Value with the specified number of digits | 
| 0 | Value with leading zeros | 
| . | Decimal point | 
| , | Group (thousand) separator | 
| PR | Negative value in angle brackets | 
| S | Sign anchored to number (uses locale) | 
| L | Currency symbol (uses locale) | 
| D | Decimal point (uses locale) | 
| G | Group separator (uses locale) | 
| MI | Minus sign in specified position (if number < 0) | 
| PL | Plus sign in specified position (if number > 0) | 
| SG | Plus/minus sign in specified position | 
| RN | Roman numeral (input between 1 and 3999) | 
| TH/th | Ordinal number suffix | 
| V | Shift specified number of digits | 
| EEEE | Scientific notation (not implemented yet) | 
Usage
- 
A sign formatted using SG, PL, or MI is not anchored to the number. For example: => SELECT to_char(-12, 'S9999'), to_char(-12, 'MI9999'); to_char | to_char ---------+--------- -12 | - 12 (1 row)- 
TO_CHAR(-12, 'S9999') produces ' -12' 
- 
TO_CHAR(-12, 'MI9999') produces '- 12' 
 
- 
- 
9 results in a value with the same number of digits as there are 9s. If a digit is not available it outputs a space. 
- 
TH does not convert values less than zero and does not convert fractional numbers. 
- 
V effectively multiplies the input values by 10^ n, wherenis the number of digits following V. TO_CHAR does not support the use of V combined with a decimal point—for example:99.9V99.