修改现有的to_char日期格式

时间:2013-04-01 18:10:06

标签: sql oracle peoplesoft

Oracle SQL会自动将我的字段D.START_DT转换为以下格式:

TO_CHAR(D.START_DT,'YYYY-MM-DD')

这让我很难修改自己的日期格式。

我试过在它周围缠绕另一个TO_CHAR而没有运气。

TO_CHAR(TO_CHAR(D.START_DT,'YYYY-MM-DD'), 'MM/DD')

我已经尝试SUBSTR选择某些角色,没有运气。我认为连字符正在顺其自然。

SUBSTR(TO_CHAR(D.START_DT,'YYYY-MM-DD'), 6, 7) || '/' || SUBSTR(TO_CHAR(D.START_DT,'YYYY-MM-DD'), 9, 10)

这方面的工作是什么?

2 个答案:

答案 0 :(得分:1)

我同意RMAN Express,看到将日期转换为您需要的任何格式没有问题... 如果您仍有问题,请尝试此操作(外部查询中的第一个to_char()是可选的):

SELECT to_char(to_date(some_date, 'YYYY-MM-DD'), 'MM/DD') final_date
  FROM
  (
  SELECT TO_CHAR(SYSDATE,'YYYY-MM-DD') some_date -- this is your "auto converted" date 
   FROM dual
  )
 /

答案 1 :(得分:0)

DATE数据类型没有格式。当您在屏幕上看到日期时,会看到一些应用您所看到的格式的内容。可能是您正在使用的程序(如SQL Developer)或NLS设置等中的“默认”。但是,DATE数据类型没有格式。因此,您可以完全控制屏幕上显示的格式。

最简单的方法是使用TO_CHAR函数:

从双重选择TO_CHAR(D.START_DT,'YYYY');

只返回四位数年份。

请参阅TO_CHAR日期格式选项。

http://docs.oracle.com/cd/E11882_01/server.112/e26088/sql_elements004.htm#CDEHIFJA

您应始终在代码中提供格式,而不是依赖其他“默认”来提供格式。