格式化时间戳



我在表中的日期以下。

表Apex

id     search_date
 1     04-OCT-18 08.36.12.000000 PM

我希望它显示为以下格式。这可能吗?

id     search_date
 1     10/4/2018 8:36.12

i要求抑制领先的零您可以使用FM开关:

to_char(search_date,'mm/FMdd/yyyy hh:mi.ss') 

如果您想从一个月开始抑制领先的零,那将是

to_char(search_date,'FMmm/dd/yyyy hh:mi.ss') 

注意,FM充当开关,即您关闭并在领先的零和空格上。

例如'FMmm/FMdd/yyyy hh:mi.ss'表示:mm被截断,但dd/yyyy hh:mi.ss不会。

您可以一起使用to_charreplaceltrim字符串操作员功能:

select replace(to_char(search_date,'mm/dd/yyyy '),'/0','/')||
       ltrim(to_char(search_date,'hh:mi.ss'),'0') as search_date
  from apex;
SEARCH_DATE
-----------------
10/4/2018 8:36.12

demo

使用TO_CHAR()TO_DATE()

这可能是部分答案,输入中的.000000 PM

SELECT TO_CHAR(TO_DATE('04-OCT-18 08.36.12','DD-MON-YY HH:MI:SS'), 'MM/DD/YYYY HH24:MI:SS') AS Result
FROM DUAL;

结果为10/04/2018 08:36:12


更新:使用TO_CHAR()TO_TIMESTAMP()

SELECT TO_CHAR(TO_TIMESTAMP('04-OCT-18 08.36.12.000000 PM','DD-MON-YY HH:MI:SS.FF PM'), 'MM/DD/YYYY HH24:MI:SS') AS Result
FROM DUAL;

db<> fiddle 上的演示,将作为 10/04/2018 20:36:12

导致

使用此04-OCT-18 08.36.12.000000 AM将作为10/04/2018 08:36:12,演示。

最新更新