3

これを使用する場合:

    VAR v_start_date VARCHAR2(30);
    EXEC :v_start_date := to_date('03-06-2013 04:00:00 PM','DD-MM-RRRR HH:MI:SS AM');
    VAR v_end_date VARCHAR2(30);
    EXEC :v_end_date := to_date('04-06-2013 04:00:00 PM','DD-MM-RRRR HH:MI:SS AM');

    print v_start_date
    print v_end_date 

私の出力はこれに短縮されます:

    v_start_date                  
    ------------------------------
    03-JUN-13                     

    v_end_date                    
    ------------------------------
    04-JUN-13                     

変数に時刻を保持させるにはどうすればよいですか?

4

3 に答える 3

0

これはうまくいくはずです:

VAR v_start_date VARCHAR2(30);
EXEC :v_start_date := to_date('03-06-2013 04:00:00 PM','DD-MM-RRRR HH:MI:SS AM');
VAR v_end_date VARCHAR2(30);
EXEC :v_end_date := to_date('04-06-2013 04:00:00 PM','DD-MM-RRRR HH:MI:SS AM');

print to_char(v_start_date,'DD-MM-RRRR HH:MI:SS AM');
print to_char(v_end_date,'DD-MM-RRRR HH:MI:SS AM');

編集

to_char に関する詳細については、次を参照してください。

to_char

于 2013-06-04T19:28:57.957 に答える
0

varchar に割り当てるときに、to_date によって返された日時値を暗黙的に変換しています。to_char次のような適切なスタイルで明示的に変換する必要があります。

EXEC :v_start_date := to_char(
    to_date('03-06-2013 04:00:00 PM','DD-MM-RRRR HH:MI:SS AM'), 
    'YYYY-MM-DD HH24:MI:SS');
于 2013-06-04T19:31:01.770 に答える
0

TO_CHARすでに指摘したように日付をフォーマットするか、現在の SQLPlus セッションの世紀と時刻ですべての日付を出力するには、次のようにセッションの日付フォーマットを設定します。

ALTER SESSION SET NLS_DATE_FORMAT = 'MM/DD/YYYY HH:MI:SS AM';

それ以降に照会された日付は、指定された形式になります。

通常の Oracle デフォルトにリセットするには:

ALTER SESSION SET NLS_DATE_FORMAT = 'DD-MON-RR';

OracleDATETIMEフォーマット コードは、ここに記載されています。

于 2013-06-04T19:32:44.383 に答える