YYYYmmddHHMMSS 格式的 Oracle 时间戳

Oracle time stamp in YYYYmmddHHMMSS format

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

我需要将其转换成YYYYmmddHHMMSS格式。 我尝试使用

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

但它的付出就像 20170623120600。而不是几分钟,而是几个月。

求推荐。

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

to_char(time,'YYYYmmddHHMISS')`

你必须使用MI而不是mm来提分钟,oracle doc是你的朋友

您需要先将字符串转换为时间戳,然后再将其转换为您各自的格式。
您可以尝试如下:

Select  
      To_Char(  
             To_TimeStamp('6/23/2017 12:00:00.000000 AM', 'MM/DD/YYYY HH:MI:SS.FF AM'),  
      'YYYYmmddHHMISS')  
from dual;

I have time stamp in oracle db in following format

没有,日期时间在数据库中存储时没有格式。您看到的格式仅供展示。

Instead of minutes it is giving months.

很明显,因为您使用了 MM 而不是 MI

  • MM 给你月数
  • MI 给你分钟的时间比例

所以,使用:

to_char(time,YYYYMMDDHHMISS)

例如,

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

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

SQL>