【发布时间】:2015-04-15 11:21:59
【问题描述】:
我在 oracle db 中有以下格式的时间戳 (6/23/2017 12:00:00.000000 AM)。
我需要将其转换为YYYYmmddHHMMSS 格式。
我尝试使用
`to_char(time,"YYYYmmddHHMMSS")`
但它就像20170623120600 一样给予。而不是分钟,而是几个月。
请提出建议。
【问题讨论】:
我在 oracle db 中有以下格式的时间戳 (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;
【讨论】:
我在 oracle db 中有以下格式的时间戳
不,日期时间存储在数据库中时没有格式。您看到的格式仅供展示。
它给出的是几个月,而不是分钟。
很明显,因为您使用了MM 而不是MI。
所以,使用:
to_char(time,YYYYMMDDHHMISS)
例如,
SQL> SELECT to_char(SYSDATE,'YYYYMMDDHHMISS') FROM dual;
TO_CHAR(SYSDAT
--------------
20150415050759
SQL>
【讨论】: