1つのフィールドでは、日時のペアではなく、標準のOracleの日付を保存する必要があります。時間のみを保存する方法。日時ではない?
01/10/2009 22:10:39
しかし、時間だけ
22:10:39
私は、ディスクスペースを節約すると思います(I 2万行を持っている)、またはより高速な処理を提供します。
1つのフィールドでは、日時のペアではなく、標準のOracleの日付を保存する必要があります。時間のみを保存する方法。日時ではない?
01/10/2009 22:10:39
しかし、時間だけ
22:10:39
私は、ディスクスペースを節約すると思います(I 2万行を持っている)、またはより高速な処理を提供します。
あなたはSECONDデータ型にINTERVAL DAYを試みることができるが、それは勝ちましたディスク容量を節約できます...しかし、この目的には非常に適しています。
create table t1 (time_of_day interval day (0) to second(0));
insert into t1 values (TO_DSINTERVAL('0 23:59:59'));
select date '2009-05-13'+time_of_day
from t1;
11バイトです。
ベストプラクティスは、おそらく "秒より深刻な秒数"を数値フィールドとして格納している可能性があります。
SELECT to_char(SYSDATE, 'SSSSS') FROM dual;
あなたはこのような文字列として日付から時間を抽出することができます。
to_char(sysdate,'HH.MI.SS')
いますが、スペースを節約するのに役立ちますは時間のみのデータ型はありません。
VARCHAR列に何かを格納することができます。これは、再度取得する際にはあまり役に立ちません。 – Ben
あなたはいくつかのメガバイトのディスクスペースを節約します(これは今日は何もありません)。
NUMBER
というタイプの列を使用して深夜からの秒数を格納することができます。制約を忘れないでください。
(おそらく代わりにDATE
列で使用される定数7バイトの格納された値に応じて1〜3つのバイトを使用するNUMBER(5, 0)
を使用すると思います)
:時刻形式のため
TO_CHAR(<DATE_COLUMN>, '<TIME_FORMAT>');
例
TO_CHAR(SYSDATE, 'HH24:MI:SS');
あなたは、物事の壮大なスキームでhere
2万行を確認することができます実質的に何もありません。貧弱な省スペースは精度の低下の価値があるのでしょうか? – kurosch
私は質問しておかなければならない質問は、「何の高速処理ですか?すべての時間があれば、それを何か他のものと確実に比較することはできないので、何も保存せずに行全体で7バイトを節約することができます。 – kurosch