2016-04-18 9 views
0

iveテーブルを作成するように求められましたoracle sqlでテーブルを作成するときに長時間を追加

エントリ時間(m.sshh) 0.3506(数値として格納) 最終時間(m.sshh)。 0.3506(数字として保存)

テーブルを作成するときにこれをどのようにフォーマットしますか?私は試しました

CREATE TABLE S_ENTRY 
(
reg_code varchar(5), 
event_no number(1,50), 
entry_time number (m.sshh), 
final_time number (m.sshh) 
; 

私は "数値精度指定子が範囲外(1から38)"エラーを取得します。また、to_charを使用すると、右括弧のエラーが表示されなくなります。

ありがとうございました

+1

正確に何を保存しますか?タイムスタンプ?間隔? "m.sshh"とは何を意味するのですか?それが「分。秒秒の時間」の場合は、そのような奇妙なフォーマットがなぜなのか説明してください。 –

+0

私は、チュートリアルの演習に戻って考えていません。私は水泳選手がレースを完了した現在知られていない長さを格納したい、私は分の約3分の350立っていると思いますか? – discord1

答えて

0

基本的な答えは次のとおりです。数値として保存しないでください。

Interval Literals、特にタイプのものを探しています。

リンクされたドキュメントを読んでください、なぜあなたのニーズに合っているのでしょうか。

+0

それは水泳競技のテーブルで、与えられた例は0.3506で、私はそれが何を意味するか分からない、私は35秒と0.6ミリ秒を推測する? – discord1

+0

詳細情報を編集しました、ありがとうございます:) –

0

これは素晴らしいフォーマットではありません。

あなたが理解する必要が
CREATE TABLE S_ENTRY (
    reg_code varchar(5), 
    event_no number(1,50), 
    entry_time number(6, 4), 
    final_time number(6, 4) 
); 

が、しかし、Oracleは唯一の数字として、これらの値を見ている:しかし、あなたが望むことは定義されたスケールと精度で、固定フィールドです。あなたがそれらを倍として保存したい場合は、intervalを使用することができます。

あなたも0として「日付」コンポーネントと timestampまたは dateを使用することができますが、それは日に追加することができますので、 intervalがより理にかなって
entry_time interval day(0) to seconds(0) 

関連する問題