0

应该是一个很简单的问题。我有两个字段 - 一个是一年字段,另一个是一个月字段。月份字段是一个整数,如果只有一位数字,例如六月的 6,则没有前导零。如果我现在将它们连接在一起,我想将这两个字段连接在一起以获得 201406 而不是 20146。我试过 year||to_char(month,'09')了,但该字段显示为 2014 06 年和月之间有一个空格。有没有办法在没有空格的情况下做到这一点?

4

2 回答 2

1

如果您的输出包含一个空格,那么您的年份或月份列包含一个空格。要摆脱这些,您可以使用TRIM

with v_data(year, month) as (
  select '2015 ', ' 1' from dual union all
  select ' 2014 ', ' 12 ' from dual union all
  select '2014', '3' from dual
)
select trim(year) || lpad(trim(month), 2, '0') 
from v_data

(这假设您确实有两个字符串列 - 如果您确实有两个日期列,请在您的问题中添加示例输入)

更新

如果你想to_char()改用,你应该使用FM格式修饰符来去掉空格:

select trim(year) || trim(to_char(month, 'FM09')) 
from v_data
于 2015-03-30T13:59:13.543 回答
1

问题是,默认情况下,to_char在正格式数字前面留一个空格,以便它们与负数很好地对齐。为防止这种情况,请使用to_char(month,'fm09').

于 2015-03-30T14:06:23.910 回答