我在oracle db中有以下格式的时间戳(6/23/2017 12:00:00.000000 AM)。
我需要将其转换为YYYYmmddHHMMSS
格式。
我试图使用
`to_char(time,"YYYYmmddHHMMSS")`
但它给出的是20170623120600
。它花了好几个月而不是几分钟。
请建议。
答案 0 :(得分:2)
您必须使用MI
代替mm
来提及分钟,oracle doc是您的朋友
答案 1 :(得分:2)
您需要先将字符串转换为TimeStamp,然后将其转换为相应的格式 你可以尝试如下:
Select
To_Char(
To_TimeStamp('6/23/2017 12:00:00.000000 AM', 'MM/DD/YYYY HH:MI:SS.FF AM'),
'YYYYmmddHHMISS')
from dual;
答案 2 :(得分:2)
我在oracle db中有以下格式的时间戳
不,日期时间没有格式存储在数据库中。您看到的格式仅供显示。
而不是几分钟,它给了几个月。
很明显,因为您使用了MM
而不是MI
。
所以,使用:
to_char(time,YYYYMMDDHHMISS)
例如,
SQL> SELECT to_char(SYSDATE,'YYYYMMDDHHMISS') FROM dual;
TO_CHAR(SYSDAT
--------------
20150415050759
SQL>
答案 3 :(得分:1)
你应该给MI
分钟。所以你的转换会像这样
to_char(time,"YYYYmmddHHMISS")`