Метка времени форматирования - PullRequest
0 голосов
/ 25 июня 2019

У меня есть приведенная ниже дата в таблице.

Таблица APEX

id     search_date
 1     04-OCT-18 08.36.12.000000 PM

Я бы хотел, чтобы она отображалась в следующем формате.Возможно ли это?

id     search_date
 1     10/4/2018 8:36.12

Ответы [ 3 ]

2 голосов
/ 25 июня 2019

Я приказываю подавлять начальные нули, вы можете использовать переключатель 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 не будет.

1 голос
/ 25 июня 2019

Вы можете использовать функции строкового оператора to_char, replace и ltrim вместе:

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

Демо

0 голосов
/ 25 июня 2019

Использование 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, демо для того же.

...