oracle将DD-MON-YY转换为DD / MM / YYYY

时间:2016-10-24 17:20:12

标签: oracle date varchar2

我正在尝试从' DD-MON-YY '转换varchar2列的格式到' DD / MM / YYYY '。

例如:来自' 01-JAN-16 '到' 01/01/2016 '

如果您可以提出或可能有所帮助:

  • ' MON'部分是英文,但我目前的NLS设置是土耳其语。
  • 所有这些年都是在2000年之后。

我该怎么做? 提前谢谢..

3 个答案:

答案 0 :(得分:10)

如果您未提供NLS_DATE_LANGUAGE参数,则会使用您自己的会话参数。

您可以像这样覆盖:

select TO_CHAR(TO_DATE('01-JAN-16','DD-MON-YY', 'NLS_DATE_LANGUAGE = English'),
           'DD/MM/YYYY') from dual;

这只会影响此查询,没有别的。如果您需要使用这样的许多日期,

ALTER SESSION SET NLS_DATE_LANGUAGE='ENGLISH'

- 然后您可以稍后将其更改回来,或者当此会话结束并重新启动另一个会话时它将重置为土耳其语。

如果您需要将此更改(几乎)永久化,请将其放在SQL Developer或Toad的设置中,或者放在SQL * Plus的login.sql中。

答案 1 :(得分:3)

试试这个:

TO_CHAR(TO_DATE('01-JAN-16','DD-MON-YY'),'DD/MM/YYYY')

您的数据必须干净 - 一切都必须符合原始格式,否则您将在TO_DATE转换时遇到错误。

答案 2 :(得分:0)

转到工具->首选项->数据库-> NLS->日期格式,然后将日期更改为DD / MM / YYYY。

Oracle SQL Developer版本18.4.0.376 Build 376.1900