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.