将时间戳格式转换为字符的问题
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;跨度>以上是关于将时间戳格式转换为字符的问题的主要内容,如果未能解决你的问题,请参考以下文章
将时间戳(以毫秒为单位)转换为 Java 中的字符串格式时间
Python pytz 将时间戳(字符串格式)从一个时区转换为另一个时区