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)
这方面的工作是什么?
答案 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
您应始终在代码中提供格式,而不是依赖其他“默认”来提供格式。