0

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)

解决这个问题的方法是什么?

4

2 回答 2

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
  )
 /
于 2013-04-01T19:28:13.690 回答
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

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

于 2013-04-01T19:14:46.470 回答