1

デュアルを使用した以下の 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_ONERESULT_ONEは、2 つの別々の形式の指示を追加することによる私の現在の回避策です。この問題は、分にゼロが含まれる時刻値 (例: 11:02 AM) で発生します。

回避策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
4

1 に答える 1

2

fm修飾子を複数の書式マスクに適用できます

SQL> ed
Wrote file afiedt.buf

  1  SELECT TO_CHAR (TRUNC (SYSDATE), 'FMMonth dd, yyyy fmhh:MI AM') result_two
  2*   FROM DUAL
SQL> /

RESULT_TWO
------------------------------------------------------
December 4, 2012 12:00 AM
于 2012-12-04T20:50:22.997 に答える