如何在 oracle 中将日期格式从“28-03-18 09:11:34.000000000 PM”转换为“MM-DD-YYYY HH24:MI:SS”

Posted

技术标签:

【中文标题】如何在 oracle 中将日期格式从“28-03-18 09:11:34.000000000 PM”转换为“MM-DD-YYYY HH24:MI:SS”【英文标题】:How to convert date format from "28-03-18 09:11:34.000000000 PM" to "MM-DD-YYYY HH24:MI:SS" in oracle 【发布时间】:2021-10-31 02:38:51 【问题描述】:

我正在尝试为我遇到以下问题的一个报告项目转换日期:

select 
UPDATED_DT, to_CHAR(UPDATED_DT,'MM-DD-YYYY HH24:MI:SS'), TO_DATE(to_CHAR(UPDATED_DT,'MM-DD-YYYY HH24:MI:SS'),'MM-DD-YYYY HH24:MI:SS')
from COMPANY;

结果:

28-03-18 09:11:34.000000000 PM          03-28-2018 21:11:34           28-03-2018 21:11:34

如果您发现我使用 TO_CHAR 获得了正确的格式,但是我想要日期数据类型中的日期。我怎样才能实现“MM-DD-YYYY HH24:MI:SS”?

【问题讨论】:

日期数据类型没有人类可读的格式,它有一个内部表示。您的客户端/IDE/应用​​程序/报告工具通常会将其转换为格式化字符串(例如,使用您的会话 NLS_DATE_FORMAT 设置)以进行显示; to_char() 也会这样做。如果这是一个报告项目,那么您可能需要告诉您的报告工具如何格式化日期值。 【参考方案1】:

用它来设置你想要的格式

ALTER SESSION SET NLS_DATE_FORMAT = 'MMDDYYYY HH24:MI:SS';

【讨论】:

以上是关于如何在 oracle 中将日期格式从“28-03-18 09:11:34.000000000 PM”转换为“MM-DD-YYYY HH24:MI:SS”的主要内容,如果未能解决你的问题,请参考以下文章

如何在 html5 日期时间选择器中将格式从 12 小时更改为 24 小时?

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

怎么在Oracle中将时间戳转化为日期格式

怎么在Oracle中将时间戳转化为日期格式

Oracle ADF在查询组件中将secondaryPattern添加到Date

在 Oracle SQL 中将纪元时间转换为正常的日期时间格式