2011-11-15 20 views
1

私のカラム時間を 'hh24:mi:ss'として表示したいのですが、それでもto_date('13:00:00 '、' hh24:mi:ss ')として挿入します。日付形式として表示されます。私は変換するさまざまな方法を試して、私はセッションを変更したくないです。ここでOracleからの時刻表示形式

は私のテーブルが作成されます:

CREATE TABLE Test 
    (
    Name VARCHAR2(20), 
    Description Varchar2(20), 
    StudyTime Date, 
    SleepTime Date, 
); 

インサート:

INSERT INTO Test 
VALUES('JUDY','STUDYING AT ABC', (To_Date('01:00:00', 'HH24:MI:SS')), 
      (TO_DATE('06:35:00', 'HH:MI:SS'))); 

結果の表示:誰が助けるため

Judy,Studying at abc,11-Nov-2011,11-Nov-2011 

ありがとう!

答えて

5

IDEまたはSQL * Plusの設定では、デフォルトの日付書式DD-Mon-YYYYが表示されます。 時刻形式を入力していても、Oracleは完全な日付と時刻、つまり2011年11月11日の日付と見なします(これに注意する必要があります)。

表示するために使用しているインターフェイスのすべての列を選択すると、既定のNLS形式の設定を使用するものが指定されていない場合、結果に日付列の文字表示が表示されます。 参照:http://www.adp-gmbh.ch/ora/admin/nls_levels.html

NLSの日付形式の設定を変更するか、TO_CHARの形式を使用して結果を指定します。

試してみてください。

SELECT name, 
     description, 
     TO_CHAR(studytime, 'HH24:MI:SS') as studytime, 
     TO_CHAR(sleeptime, 'HH:MI:SS') as sleeptime 
    FROM test; 

N.B.値を入力するときの例で行ったように、をstudytimeに、HHsleeptimeに使用しました。

これは、正しい形式で表示する必要があります。

+0

すべての列を書き込むのではなく、テストから*を選択します。出来ますか?私はto_char形式でそれらを選択することによって動作することを知っています。 – JLearner

+0

はい、日付列がDATE列の時間部分を表示するように、IDEのNLS設定を変更する必要があります。 – Ollie

+0

nls date_timeフォーマットを変更すると、 'dd:mon:yyyy'でフォーマットしたい日付の残りの部分が 'hh24:mi:ss'に変わります。他の解決策はありますか? – JLearner