Shanghai Tengke Education Dream DatabaseTraining乾物共有DM7での時間タイプの使用の概要

データベースの日常の使用では、サービスの開始時刻を記録する場合でも、フロントエンドアプリケーションに注文時刻を保存する場合でも、さまざまな日付タイプの使用と切り離せません。この記事では、DM7でのさまざまな時刻タイプの違いと使用法を紹介します。予防。

 

1。DM7の時刻と日付のタイプの概要

 

DM7で一般的に使用される時刻と日付のタイプには、DATE、TIME、およびTIMESTAMPの3つがあります。

 

DATEタイプには、年、月、日の情報が含まれ、「-4712-01-01」から「9999-12-31」までの有効なグレゴリアン日付を定義します。

 

TIMEタイプには、時、分、秒の情報が含まれ、「00:00:00.000000」から「23:59:59.999999」までの有効な時間を定義します。TIMEタイプのdecimalseconds精度は、secondsフィールドの小数点以下の桁数を指定します。値の範囲は0〜6です。定義されていない場合、デフォルトの精度は0です。

 

TIMESTAMPタイプには、年、月、日、時、分、および秒の情報が含まれます。

00:00:00.000000 'から' 9999-12-3123:59:59.999999 'までの有効なグレゴリアン日時。

 

TIMESTAMPタイプの10進数の秒精度は、秒フィールドの小数点以下の桁数を指定します。値の範囲は0〜6です。定義されていない場合、デフォルトの精度は6です。

 

二。DATEとTIMESTAMPの違い

 

上記の定義によれば、DATEタイプは年、月、日しか保存できないことがわかっていますが、完全な時刻をDATEに保存しようとするとどうなりますか?次のテストを実行できます。

 

宣言する

       TEST1日付;

       TEST2日付;

ベギン

       SET TEST1 = to_date( '2018-11-0115:20:10'、 'YYYY-MM-DDHH24:MI:SS');-デポジット時間1

       SET TEST2 = to_date( '2018-11-0117:20:10'、 'YYYY-MM-DDHH24:MI:SS');-デポジット時間2

 

       TEST1 = TEST2の場合 

       PRINT'TEST1 = TEST2 ';-2つの値が同じ場合、TEST1 = TEST2と表示されます

       PRINT TEST1;

       ELSEIF TEST1> TEST2 THEN

       PRINT'TEST1> TEST2 ';

       PRINT TEST1;

      ENDIF;

終わり;

 

実行結果は以下のとおりです。

 

 

 

年、月、日、時、分、秒、ミリ秒を含む完全な時間を日付タイプに保存しようとすると、年、月、日以外の値が切り捨てられることがわかります。したがって、2つの値を比較すると、結果は等しい符号になります。この場合、データの損失を回避するために、完全な日付と時刻の情報を格納するTIMESTAMPが必要です。

 

3.ORACLEからDMへの移行

 

ORACLEに精通している読者は、ORACLEのDATEタイプには、年、月、日、時、分、および秒の情報が含まれていることを理解する必要があります。したがって、ORACLEからDMにデータを移行するときに、DATEタイプが変換されていないと、時、分、秒のデータが失われる可能性があります。このとき、以下に示すように、DMでDATEタイプをTIMESTAMPに変換する必要があります。

 

ORACLEでインスタンステーブルを作成し、時間データを入力します

 

CREATE TABLE T1(AAA DA​​TE);

INSERT INTO T1VALUES(to_date( '2018-11-01 15:20:10'、 'YYYY-MM-DD HH24:MI:SS'));

コミット;

 

ここでは、DTSツールを使用して移行を実行します。スペースの制限により、ここではプロセスを示しません。移行が完了すると、対応するT1テーブルとデータがDMに表示されます。

 

 

テーブルとデータが移行され、タイプがTIMESTAMPに変換されました。時間、分、秒のデータは失われません。ここで、一部の読者は、DATEタイプ自体がTIMESTAMPになったのはなぜですか?移行プロセス中に何かしましたか?

 

実際、移行プロセス中にデータタイプのマッピングを手動で指定しませんでした。ただし、DTSを使用してORACLEからDMに移行すると、DTSツールはそれ自体で一部のタイプを変換します。

 

 

図に示すように、ツールは自動的にDATEタイプをTIMESTAMPタイプに変換しました。もちろん、移行中の型変換は図のそれ以上です。興味のある読者は、DTSヘルプドキュメントのデフォルトのデータ型マッピングに関する章を参照できます。

おすすめ

転載: blog.csdn.net/qq_42726883/article/details/108463599