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

Posted

技术标签:

【中文标题】将时间戳格式转换为字符的问题【英文标题】: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 可能很好。我也想过,但我觉得肯定有别的办法 【参考方案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;跨度>

以上是关于将时间戳格式转换为字符的问题的主要内容,如果未能解决你的问题,请参考以下文章

如何在Oracle中将时间戳转化为日期格式

如何将日期字符串转换为具有不同日期格式的时间戳?

将时间戳(以毫秒为单位)转换为 Java 中的字符串格式时间

Python pytz 将时间戳(字符串格式)从一个时区转换为另一个时区

将基于十进制列的时间戳转换为实际时间戳时,使用 HH24MISS 扩展“格式字符串”的问题

在没有格式化程序的情况下将时间戳转换为字符串