YYYYmmddHHMMSS格式的Oracle时间戳

时间:2015-04-15 11:22:00

标签: sql oracle11g

我在oracle db中有以下格式的时间戳(6/23/2017 12:00:00.000000 AM)。

我需要将其转换为YYYYmmddHHMMSS格式。 我试图使用

进行转换
`to_char(time,"YYYYmmddHHMMSS")`

但它给出的是20170623120600。它花了好几个月而不是几分钟。

请建议。

4 个答案:

答案 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

  • MM为您提供月份编号
  • MI为您提供时间pportion的会议记录

所以,使用:

to_char(time,YYYYMMDDHHMISS)

例如,

SQL> SELECT to_char(SYSDATE,'YYYYMMDDHHMISS') FROM dual;

TO_CHAR(SYSDAT
--------------
20150415050759

SQL>

答案 3 :(得分:1)

你应该给MI分钟。所以你的转换会像这样

to_char(time,"YYYYmmddHHMISS")`