2011/3/9 Adrian Klaver <adrian.kla...@gmail.com>

> On 03/09/2011 09:59 AM, Dmitriy Igrishin wrote:
>
>>
>>
>> 2011/3/9 Adrian Klaver <adrian.kla...@gmail.com
>> <mailto:adrian.kla...@gmail.com>>
>>
>>
>>    On Wednesday, March 09, 2011 5:34:41 am Dmitriy Igrishin wrote:
>>
>>     >
>>     > But I am missing something or there is a documentation inaccuracy:
>>     >
>>
>> http://www.postgresql.org/docs/9.0/static/functions-formatting.html#FUNCTIO
>>     > NS-FORMATTING-NUMERICMOD-TABLEsays: fill mode (suppress padding
>>    blanks and
>>     > zeroes)
>>     >
>>     > Test:
>>     > dmitigr=> select to_char(12,'FM0009');
>>     >  to_char
>>     > ---------
>>     >  0012
>>     >
>>     > dmitigr=> select length(to_char(12,'FM0009'));
>>     >  length
>>     > --------
>>     >       4
>>     >
>>     > So, FM suppresses only padding blanks not zeroes...
>>     >
>>     > Any comments?
>>     >
>>
>>    test(5432)aklaver=>select to_char(12,'9999');
>>      to_char
>>    ---------
>>        12
>>
>>    test(5432)aklaver=>select to_char(12,'FM9999');
>>      to_char
>>    ---------
>>      12
>>
>>    It is a little confusing, but you asked for the 0 in your
>>    specification so they
>>    are not considered padding.
>>
>>    Look at the examples in the table listed below to get an idea of
>>    what I am
>>    talking about.
>>    http://www.postgresql.org/docs/9.0/static/functions-formatting.html
>>    Table 9-25
>>
>> Yes, I see, thanks!
>>
>> I just talking about phrase "fill mode (suppress padding blanks and
>> zeroes)"
>> in the documentation should be rephrased to "fill mode (suppress padding
>> blanks)".
>>
>
> To get technical it means suppress unspecified padding O's. See below for
> example.
>
>
>
>> Or I misunderstood what is "padding zeroes" without explicitly
>> specification "0" pattern in the format format template...
>>
>
> This combination from the example table shows that:
>
> to_char(-0.1, 'FM9.99') '-.1'
> to_char(0.1, '0.9')     ' 0.1'
>
> The 0 in 0.1 is not strictly needed, so if you use FM it will be
> suppressed.
>
Ahh, I guess I understand (thanks to you examples).
Lets look at the test:

dmitigr=> SELECT '>'||to_char(-0.1, 'FM9.99')||'<' AS v;
   v
-------
 >-.1<

dmitigr=> SELECT '>'||to_char(0.1, '0.9')||'<' AS v;
   v
--------
 > 0.1<

dmitigr=> SELECT '>'||to_char(0.1, 'FM0.9')||'<' AS v;
   v
-------
 >0.1<

dmitigr=> SELECT '>'||to_char(0.1, '0.99999')||'<' AS v;
     v
------------
 > 0.10000<

dmitigr=> SELECT '>'||to_char(0.1, 'FM0.99999')||'<' AS v;
   v
-------
 >0.1<

So, padding zeroes suppressed by FM is a rest of the value.

Thank you very much!


>
>
>
>>
>>
>>    --
>>    Adrian Klaver
>>    adrian.kla...@gmail.com <mailto:adrian.kla...@gmail.com>
>>
>>
>>
>>
>> --
>> // Dmitriy.
>>
>>
>>
>
> --
> Adrian Klaver
> adrian.kla...@gmail.com
>



-- 
// Dmitriy.

Reply via email to