我正在尝试更改Oracle SYSDATE的格式,以便它在运行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;提前感谢一百万
发布于 2017-03-15 16:44:38
MON将显示月份而不是数字。
SELECT TO_CHAR
(SYSDATE, 'DD/MON/YY HH24:MI:SS."000000000"')
FROM DUAL;发布于 2017-03-15 16:47:40
转换成你想要的格式的文本(除非数据库设计很糟糕,否则你不需要这样做)。
substr(to_char(systimestamp,'DD/MON/YY HH24:MI:SS.FF') || '000000000', 1, 28)或
to_char(sysdate,'DD/MON/YY HH24:MI:SS') || '.000000000'有关格式掩码的详细信息,请参阅here。
注意: sysdate不返回秒的分数,因此如果需要这样做,可以使用systimestamp
发布于 2017-03-15 17:01:01
SYSDATE属于DATE类型,不支持小数秒,因此您需要将.000000000与格式化的日期连接起来:
SELECT TO_CHAR(
SYSDATE,
'DD/MM/YY HH24:MI:SS'
) || '.000000000'
FROM DUAL;或者您需要将DATE CAST到TIMESTAMP
SELECT TO_CHAR(
CAST( SYSDATE AS TIMESTAMP ),
'DD/MM/YY HH24:MI:SS.FF9'
)
FROM DUAL;https://stackoverflow.com/questions/42804788
复制相似问题