Sql Oracle SYSDATE格式更改

Sql Oracle SYSDATE格式更改,sql,oracle,Sql,Oracle,我正在尝试更改OracleSysDate的格式,以便在运行PL/SQL过程时使用特定的格式。这种格式确实没有必要,但我正在更新一个旧表,由于一些集成,需要维护这种格式。我的问题是我无法复制格式。 所需格式为:15/MAR/17 09:31:08.000000000 目前,下面是我能得到的最接近的,我不知道如何更改MM以显示MAR而不是03 SELECT TO_CHAR (SYSDATE, 'DD/MM/YY HH24:MI:SS.SSSSSSSSS') FROM DUAL; 提前感谢工

我正在尝试更改OracleSysDate的格式,以便在运行PL/SQL过程时使用特定的格式。这种格式确实没有必要,但我正在更新一个旧表,由于一些集成,需要维护这种格式。我的问题是我无法复制格式。 所需格式为:
15/MAR/17 09:31:08.000000000

目前,下面是我能得到的最接近的,我不知道如何更改
MM
以显示MAR而不是03

SELECT TO_CHAR
    (SYSDATE, 'DD/MM/YY HH24:MI:SS.SSSSSSSSS')
FROM DUAL;

提前感谢工厂

周一将显示月份而不是数字

SELECT TO_CHAR
    (SYSDATE, 'DD/MON/YY HH24:MI:SS."000000000"')
FROM DUAL;

MON将显示月份而不是数字

SELECT TO_CHAR
    (SYSDATE, 'DD/MON/YY HH24:MI:SS."000000000"')
FROM DUAL;

以您想要的格式转换为文本(除非DB设计糟糕,否则不需要这样做)

可以找到有关格式掩码的详细信息


注意:sysdate不会返回一秒钟的小数,因此如果需要,请使用systimestamp将其转换为所需格式的文本(除非数据库设计糟糕,否则不需要)

可以找到有关格式掩码的详细信息


注意:sysdate不返回小数秒,因此如果需要,请使用systimestamp
sysdate
DATE
类型,不支持小数秒,因此您需要将
.000000000
与格式化日期连接起来:

SELECT TO_CHAR(
         SYSDATE,
         'DD/MM/YY HH24:MI:SS'
       ) || '.000000000'
FROM   DUAL;
或者您需要
日期
转换为
时间戳

SELECT TO_CHAR(
         CAST( SYSDATE AS TIMESTAMP ),
         'DD/MM/YY HH24:MI:SS.FF9'
       )
FROM   DUAL;

SYSDATE
属于
DATE
类型,不支持小数秒,因此您需要将
.000000000
与格式化日期连接起来:

SELECT TO_CHAR(
         SYSDATE,
         'DD/MM/YY HH24:MI:SS'
       ) || '.000000000'
FROM   DUAL;
或者您需要
日期
转换为
时间戳

SELECT TO_CHAR(
         CAST( SYSDATE AS TIMESTAMP ),
         'DD/MM/YY HH24:MI:SS.FF9'
       )
FROM   DUAL;

date
列没有格式。您不需要格式化
日期
值。不在SQL和PL中/SQL@a_horse_with_no_name. 没错,但他说的是,为了匹配旧数据,他需要格式化列结果。谷歌破产了吗?格式化文档中的所有内容。
date
列没有格式。您不需要格式化
日期
值。不在SQL和PL中/SQL@a_horse_with_no_name. 没错,但他说的是,为了匹配旧数据,他需要格式化列结果。谷歌破产了吗?格式化文档中的所有内容。是的,很抱歉,我修复了它,我只是复制了他的文本并粘贴到修复MON:)是的,很抱歉,我修复了它,我只是复制了他的文本并粘贴到修复MON:)或者使用systimestamp?
CAST(SYSDATE作为时间戳)
也不提供小数秒,这与连接固定字符串相同。使用
SYSTIMESTAMP
LOCALTIMESTAMP
CURRENT\u TIMESTAMP
@WernfriedDomscheit我不想获取小数秒的值(是的,
SYSTIMESTAMP
可以这样做),而是回答OP的问题(使用指定的
SYSDATE
)或者使用systimestamp?
CAST(SYSDATE作为时间戳)
也不提供小数秒,这与连接固定字符串相同。使用
SYSTIMESTAMP
LOCALTIMESTAMP
CURRENT_TIMESTAMP
@WernfriedDomscheit我不想得到小数秒的值(是的,
SYSTIMESTAMP
可以这样做),而是回答OP的问题(使用他们指定的
SYSDATE
),并获得他们想要的格式的字符串。