Oracle to_char将一个数字转换为字符串并且按照指定格式显示

0    356    1

Tags:

👉 本文共约1517个字,系统预计阅读时间或需6分钟。

目录

    在应用中,可能需要将0.007007040000转换成0.70%,或需要显示“0.00”、“1.20”等类似的数据格式,此时可以使用TO_CHAR函数来转换。这个函数可以用来将DATE或NUMBER数据类型转换成可显示的字符串,格式是TO_CHAR(number_type,format_mask),format_mask转换格式有多种,如下表所示:

    格式含义
    9显示数字,9表示对应的某一个指定位数的值,若值是0则忽略不显示,若指定位数没有值,则以空格表示。
    0显示数字,0表示对应的某一个指定位数的值,若值是0则显示为0,若指定位数没有值也显示为0。
    FM或fmFM表示将显示出来的字符串定位数没有值而显示的空格清理掉,作用和ltrim类似。
    .在指定位置显示小数点。
    ,在指定位置显示逗号。
    $在数字前加美元。
    L在数字前面加本地货币符号。
    C在数字前面加国际货币符号。
    G在指定位置显示组分隔符。
    D在指定位置显示小数点符号(.)。
    PR尖括号内负值。
    MI在指明的位置的负号(如果数字 < 0)。
    PL在指明的位置的正号(如果数字 > 0)。
    S带负号的负值(使用本地化)。
    SG在指明的位置的正/负号。
    RN罗马数字(输入在 1 和 3999 之间)。
    TH或th转换成序数。
    V移动 n 位(小数)
    EEEE科学记数。现在不支持。

    需要注意的是,在NUMBER类型转换为字符串时,负数会返回前面包含负号的字符串,正数则会返回前面包含空格的字符串,除非格式模式包含MI、S、或PR元素。即LENGTH(TO_CHAR(4, '0000'))的值其实是5,所以需要使用FM格式或ltrim去掉空格。示例如下所示:

    SYS@PROD1> SELECT TO_CHAR(0.00, 'FM9999999999999999990.00') A,

    2 TO_CHAR(ROUND(0.007007040000, 4) * 100, 'FM99999999990.90') || '%' AS B,

    3 LENGTH(TO_CHAR(4, '0000')) C,

    4 LENGTH(TO_CHAR(4, 'FM0000')) C1,

    本人提供Oracle(OCP、OCM)、MySQL(OCP)、PostgreSQL(PGCA、PGCE、PGCM)等数据库的培训和考证业务,私聊QQ646634621或微信db_bao,谢谢!
    Oracle to_char将一个数字转换为字符串并且按照指定格式显示后续精彩内容已被小麦苗无情隐藏,请输入验证码解锁本站所有文章!
    验证码:
    请先关注本站微信公众号,然后回复“验证码”,获取验证码。在微信里搜索“DB宝”或者“www_xmmup_com”或者微信扫描右侧二维码都可以关注本站微信公众号。

    标签:

    Avatar photo

    小麦苗

    学习或考证,均可联系麦老师,请加微信db_bao或QQ646634621

    您可能还喜欢...

    发表回复

    嘿,我是小麦,需要帮助随时找我哦。
    • 18509239930
    • 个人微信

    • DB宝
    • 个人邮箱
    • 点击加入QQ群
    • 个人微店

    • 回到顶部