应该是一个非常简单的问题。我有两个领域 - 一个是一年一个领域,另一个是一个月领域。月份字段是一个整数,如果6月只有一个数字,例如6,则没有前导零。如果我现在将它们连接在一起,我想将两个字段连接在一起以获得201406而不是20146。我尝试了
year||to_char(month,'09')
,但该字段显示为2014年06年,年份和月份之间有一个空格。有没有办法在没有空间的情况下做到这一点?
答案 0 :(得分: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
format modifier来摆脱空间:
select trim(year) || trim(to_char(month, 'FM09'))
from v_data
答案 1 :(得分:1)
问题在于,默认情况下,to_char
会在正格式化数字前面留出一个空格,以便它们与负数排成一行。为防止这种情况发生,请使用to_char(month,'fm09')
。