格式化时间戳
Formatting timestamp
我在 table 中有以下日期。
Table 顶点
id search_date
1 04-OCT-18 08.36.12.000000 PM
我希望它显示为以下格式。这可能吗?
id search_date
1 10/4/2018 8:36.12
使用 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;
更新:使用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;
Demo on db<>fiddle,结果为 10/04/2018 20:36:12
使用此 04-OCT-18 08.36.12.000000 AM
将导致 10/04/2018 08:36:12
、demo 相同。
您可以同时使用 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
我为了抑制前导零你可以使用 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
不会。
我在 table 中有以下日期。
Table 顶点
id search_date
1 04-OCT-18 08.36.12.000000 PM
我希望它显示为以下格式。这可能吗?
id search_date
1 10/4/2018 8:36.12
使用 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;
更新:使用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;
Demo on db<>fiddle,结果为 10/04/2018 20:36:12
使用此 04-OCT-18 08.36.12.000000 AM
将导致 10/04/2018 08:36:12
、demo 相同。
您可以同时使用 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
我为了抑制前导零你可以使用 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
不会。