将时间戳格式转换为 char 的问题

problem to convert timestamp format to char

有这个查询:

CREATE TABLE my_table 
   (    
    "CREATED" TIMESTAMP (6) DEFAULT sysdate NOT NULL ENABLE, 
    "CREATED_BY" VARCHAR2(256 BYTE) NOT NULL ENABLE, 
    "EFFECTIVEDATE" TIMESTAMP (6)
)

如果我对 EFFECTIVEDATE 列进行简单查询,看起来像这样(在一些插入之后) 查询:

select EFFECTIVEDATE
from my_table;

但是如果我想格式化那个时间戳... 查询:

select to_char(mt.EFFECTIVEDATE, 'YYYY-MM-DD HH:MM:SS') as "EffectiveDate"
from my_table mt

为什么要将这些值添加到 HH:MM:SS 中?

我应该怎么做才能解决这个问题?我需要这些值作为 STRING

它必须是这样的:

2020-06-26 00:00:00
2020-06-24 00:00:00
2017-01-01 00:00:00
2017-01-01 00:00:00
2017-01-01 00:00:00

我正在使用 Oracle 19。

因为您使用的是 MM 而不是 MI

  • MM - 月
  • MI - 分钟

你应该使用:to_char(mt.EFFECTIVEDATE, 'YYYY-MM-DD HH:MI:SS')

HH表示12小时制,HH24表示24小时制