下面使用 dual 的 sql 重现了该问题:
SELECT TRUNC (SYSDATE) example,
TO_CHAR (TRUNC (SYSDATE), 'FMMonth dd, yyyy')
|| ' '
|| TO_CHAR (TRUNC (SYSDATE), 'hh:MI AM') result_one,
TO_CHAR (TRUNC (SYSDATE), 'FMMonth dd, yyyy hh:MI AM') result_two
FROM DUAL
输出:
EXAMPLE RESULT_ONE RESULT_TWO
12/4/2012 December 4, 2012 12:00 AM December 4, 2012 12:0 AM
请注意RESULT_TWO
输出如何在时间的分钟值中丢失零,而RESULT_ONE
没有。 RESULT_ONE
是我目前通过附加两个单独的格式说明的解决方法。该问题发生在分钟包含零的任何时间值上(例如上午 11:02)。
关于如何在TO_CHAR
不使用RESULT_ONE
解决方法的情况下执行的任何建议?
Oracle 版本信息
> BANNER Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 -
> 64bi PL/SQL Release 10.2.0.4.0 - Production CORE 10.2.0.4.0 Production
> TNS for Solaris: Version 10.2.0.4.0 - Production NLSRTL Version
> 10.2.0.4.0 - Production