oracle 将 DD-MON-YY 转换为 DD/MM/YYYY
oracle convert DD-MON-YY to DD/MM/YYYY
我正在尝试将 varchar2 列的格式从“DD-MON-YY”转换为“DD/MM/YYYY[=26=” ]'.
例如:从“01-JAN-16”到“01/01/2016”
如果您可以询问或可能有帮助:
- 'MON' 部分是英语,但我当前的 NLS 设置是土耳其语。
- 所有年份都在 2000 年之后。
我该怎么做?
提前致谢..
试试这个:
TO_CHAR(TO_DATE('01-JAN-16','DD-MON-YY'),'DD/MM/YYYY')
您的数据必须干净 - 所有内容都必须符合原始格式,否则您将在 TO_DATE 转换时遇到错误。
如果您不提供 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 的设置中,或者 login.sql for SQL*Plus。
转到工具 —> 首选项 —> 数据库 —> NLS —> 日期格式并将日期更改为 DD/MM/YYYY。
Oracle SQL 开发者版本 18.4.0.376 内部版本 376.1900
我正在尝试将 varchar2 列的格式从“DD-MON-YY”转换为“DD/MM/YYYY[=26=” ]'.
例如:从“01-JAN-16”到“01/01/2016”
如果您可以询问或可能有帮助:
- 'MON' 部分是英语,但我当前的 NLS 设置是土耳其语。
- 所有年份都在 2000 年之后。
我该怎么做? 提前致谢..
试试这个:
TO_CHAR(TO_DATE('01-JAN-16','DD-MON-YY'),'DD/MM/YYYY')
您的数据必须干净 - 所有内容都必须符合原始格式,否则您将在 TO_DATE 转换时遇到错误。
如果您不提供 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 的设置中,或者 login.sql for SQL*Plus。
转到工具 —> 首选项 —> 数据库 —> NLS —> 日期格式并将日期更改为 DD/MM/YYYY。
Oracle SQL 开发者版本 18.4.0.376 内部版本 376.1900