Oracle中的日期转换未按预期工作

时间:2014-07-11 18:39:19

标签: sql oracle date

ORACLE 10 g db:从

转换日期格式
 02-JUL-14 
    to 
 02/JUL/14 

我尝试使用下面的选择查询获取“02 / JUL / 14”而不是显示“02-JUL-14”:

SELECT ROUTINGNUM , to_date (EFFDATE,'DD/MM/YYYY')  FROM hat;

任何人都可以帮忙阅读。

3 个答案:

答案 0 :(得分:1)

如果EFFDATE是日期列,

SELECT ROUTINGNUM , to_char( EFFDATE,'DD/MON/YYYY')  FROM hat;

如果它是DD-MON-YY格式的字符串

SELECT ROUTINGNUM , to_char( to_date( EFFDATE,'DD-MON-YY') ,'DD/MON/YYYY')  
FROM hat;

答案 1 :(得分:0)

TO_DATE函数用于从String转换为Date类型。改为使用TO_CHAR函数。

答案 2 :(得分:0)

如果您的EFFDATE字段已经是日期类型,那么您只需要更改NLS_DATE_FORMAT。

alter session set NLS_DATE_FORMAT = 'DD/MM/YYYY';
select eff_date from hat;

或者在EFFDATE上使用TO_CHAR

select to_char(eff_date, 'DD/MM/YYYY') from hat;

如果您通常处理某种格式的日期,则可以通过设置一个或多个NLS初始化参数来更改实例的默认值。

sqlplus / as sysdba
show parameter nls