【问题标题】:problem to convert timestamp format to char将时间戳格式转换为字符的问题
【发布时间】:2020-06-25 09:40:29
【问题描述】:

有这个查询:

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 中?

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

它必须是这样的:

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。

【问题讨论】:

  • 获取日期并追加00:00:00
  • 可能很好。我也想过,但我觉得肯定有别的办法

标签: sql oracle timestamp oracle-apex


【解决方案1】:

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

  • MM - 月
  • MI - 分钟

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

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

【讨论】:

  • modifying : select to_char(mt.EFFECTIVEDATE, 'YYYY-MM-DD HH:MI:SS') as "EffectiveDate" from HS_CPQ_COSTCHANNELDISCOUNT mt - 结果是这样的 2020-06-26 12 :00:00 | 2020-06-24 12:00:00,现在我没有分钟但我看到“12”
  • 我明白了 --- 正确的查询是: select to_char(mt.EFFECTIVEDATE, 'YYYY-MM-DD HH24:MI:SS') as "EffectiveDate" from HS_CPQ_COSTCHANNELDISCOUNT mt;跨度>
猜你喜欢
  • 2020-07-01
  • 2016-05-24
  • 2021-03-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多