sql - TO_CHAR函数逻辑<<数字格式>>

标签 sql oracle

我是 Oracle 新手,发现有些东西很难理解。尽管我了解 TO_CHAR 的功能,但我对数字格式模型的概念很陌生。请帮我理解下面的逻辑。

select TRIM(substr(TO_CHAR (160, '000'),1,3)) from dual;
Output -> 16

select TRIM(substr(TO_CHAR (160),1,3)) from dual;
Output -> 160

For the 1st query why has the oracle returned the value 16 rather than 160?

最佳答案

FM 开头的格式字符串,例如“FM000”
如果没有 FM,前面会保留一个空格作为减号。

select  '|' || to_char(160,'000')   || '|'     as no_FM
       ,'|' || to_char(160,'FM000') || '|'     as with_FM

from    dual

+--------+---------+
| NO_FM  | WITH_FM |
+--------+---------+
| | 160| | |160|   |
+--------+---------+

关于sql - TO_CHAR函数逻辑<<数字格式>>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42241873/

相关文章:

MySQL选择列包含值的行

sql - 如何以 24 小时格式添加小时数

sql - Sql Server 和 MySQL 中的存储过程和触发器是否相同?

oracle - Oracle PL/SQL 中的存储过程

oracle - 如何使用 RefCursor 返回类型测试 Oracle 存储过程?

php - 如何在 Laravel 上构建合并和构建组查询?

sql - 在取消挂起时退出 TOAD?

oracle - 在 Linux 中使用 PowerShell 连接到 Oracle Autonomous db

sql - 在 Oracle SQL 表中插入值的有效方法

c# - 获取 Oracle 匿名 block 中更新或删除的记录