繁体   English   中英

Oracle日期提取和连接

[英]Oracle date extract and concatenate

我必须输入日期( dd-mon-yyyy )并根据用户输入更改年份。 如何在保留格式的同时提取日期和月份并添加年份?

例如,当前为01-JAN-2015 ,用户希望它为01-JAN-2016 我目前正在做:

SELECT EXTRACT(DAY FROM contract_year) || EXTRACT(MONTH FROM contract_year) || '2016'
FROM table
WHERE program = programid

我的输出是112016 ,但我想01-JAN-2016 有什么建议么?

尝试这个

SELECT to_char(add_months('01-JAN-2015', 12*1),'dd-MON-yyyy') -- replace 1 with n where n = years
from dual

如果要将给定年份的使用添加到当前日期/月份,请使用此

      with your_table as(
      select '01-JAN-2015' as contract_year from dual
      )
      select to_date(substr(to_char(contract_year),1,7)||'2017','DD-MON-YYYY') from your_table

如果您没有看到所需的输出,则意味着您必须更改客户端设置。 尝试在SQL Plus窗口中运行它。

结合to_date和to_char:

SELECT to_date(to_char(contract_year,'dd-mm-') || '2016','dd-mm-yyyy')
FROM table
WHERE program = programid

对我来说,不是很清楚contract_year是日期还是字符串。

如果是日期:

select to_char(contract_year, 'DD-MON-') || '2016'
  from table

如果它是格式为DD-MON-YYYY的字符串,则:

select to_char(to_date(contract_year, 'DD-MON-YYYY'), 'DD-MON-') || '2016'
  from table

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM