use*_*047 0 sql oracle timestamp type-conversion
任何人都可以帮我如何转换2016-07-01 01:12:22 PM为2016-07-01 13:12:22PL/SQL?我使用了以下但没有运气.
SELECT TO_TIMESTAMP ('08-FEB-19 06.41.41.000000 PM', 'DD-Mon-RR HH24:MI:SS.FF')
FROM dual
Run Code Online (Sandbox Code Playgroud)
我期待:08-FEB-19 18.41.41.000000
我收到以下错误:
ORA-01830:日期格式图片在转换整个输入字符串之前结束
您当前的时间戳没有意义,因为它将时间指定为18小时,即下午6点,但它还指定了AM子午线指示符,这意味着早于中午.因此,您可以AM从TO_TIMESTAMP模式中删除:
SELECT TO_TIMESTAMP ('08-FEB-19 18.41.41.000000', 'DD-Mon-RR HH24.MI.SS.FF')
FROM dual;
08-FEB-19 06.41.41.000000000 PM
Run Code Online (Sandbox Code Playgroud)
请注意,Oracle内部实际上没有12或24小时格式时间戳.相反,如果您想以24小时格式查看Oracle时间戳,您可以TO_CHAR使用适当的24小时格式掩码进行调用:
SELECT
TO_CHAR(TO_TIMESTAMP ('08-FEB-19 18.41.41.000000', 'DD-Mon-RR HH24.MI.SS.FF'),
'DD-Mon-RR HH24.MI.SS.FF') AS ts
FROM dual;
08-Feb-19 18.41.41.000000000
Run Code Online (Sandbox Code Playgroud)
编辑:
如果要将时间戳字符串转换为12小时时间和AM/PM组件,我们可以尝试:
SELECT
TO_CHAR(
TO_TIMESTAMP ('08-FEB-19 06.41.41.000000 PM', 'DD-Mon-RR HH.MI.SS.FF PM'),
'DD-Mon-RR HH24.MI.SS.FF')
FROM dual;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
54 次 |
| 最近记录: |