发布网友
共3个回答
热心网友
to_char('120','999')
这里的'999'是指的数字格式,可不是要to_char的具体的数字。
'999'格式的结果就是在'120'的前面加一个空格,即:' 120'
所以 length(to_char('120','999')) =4
热心网友
我不明白你这个操作是什么意思。
to_char('120','999')
首先, to_char 是把其他类型的 数据, 转换为字符串。
而 你这个 '120' 已经是 字符串了。
不知道为什么要再转换一次。
至于那个 LENGTH 为什么是4。
看看下面的执行结果, 请注意 TO_CHAR(120,'999'), 前面有一个空格。
SQL> SELECT TO_CHAR(120) A, LENGTH(TO_CHAR(120)) B FROM al;
A B
------ ----------
120 3
SQL> SELECT TO_CHAR(120,'999') A, LENGTH(TO_CHAR(120,'999')) B FROM al;
A B
-------- ----------
120 4追问我就像sqlserver 那样输出个定长的字符串来啊 例如 convert(varchar(20),getdate())
追答Oracle 格式化日期, 比 SQL Server 省事多了去了。
SQL> SELECT
2 TO_CHAR(SYSDATE, 'YYYY-MM-DD HH24:MI:SS') a
3 FROM
4 al;
A
--------------------------------------
2013-03-26 13:36:33
如果要凑够长度为20,你想在什么位置加空格, 就在什么位置上面加空格啊。
热心网友
你可以先to_char('120','999'),看是什么结果。前面就是多了一个空格,你可以ltrim一下。追问
是120,但是长度还是4???