このデータタイプは、日付、時間、秒、ミリ秒を格納します。
DateTime
次の表に、このデータタイプの定義に使用するプロパティを示します:
次の表に、DBMS に従って実行されるデータタイプの変換を示します:
DBMS |
ネイティブのタイプ (秒精度) |
ネイティブのタイプ (ミリ秒精度) |
Oracle |
Date |
TimeStamp |
DB2 Universal Database |
Timestamp |
Timestamp |
Informix |
DateTime |
DateTime(3) |
SQL Server |
DateTime |
DateTime2 |
DB2 UDB for iSeries |
Timestamp |
Timestamp |
PostgreSQL |
Timestamp |
Timestamp |
SAP HANA |
SecondDate |
TimeStamp |
MySQL |
DateTime |
Datetime(3) |
代入
Date 項目属性と DateTime 項目属性間の代入は、次のルールに従います:
Date = DateTime: 受け取り側のフィールドで、時間に対応する値が失われます。
DateTime = Date: 受け取り側のフィールドの時間の値が 12:00:00 AM (24 時間形式の 00:00:00 表記) になります。
比較
条件で Date フィールドと DateTime フィールドを比較することはできません。これら 2 つのデータタイプを比較するには、代入を使用して一方を他方に変換する必要があります。たとえば、&DT が DateTime 変数で、&D が Date 変数の場合、次のいずれかのスキーマを使用して両者を比較できます。
// スキーマ 1: 一時的な DateTime 変数を作成して比較
&DT1 = &D //&D を DateTime に変換、その値は &DT1 に残る
//時刻部分は 12:00.000 AM
if &DT > &DT1
…
// スキーマ 2: 一時的な Date 変数を作成して比較
&D1 = &DT //&DT を Date に変換、その値は &D1 に残る
//時刻部分がなくなる
if &D > &D1
…
パラメーターの受け渡し
Date データタイプと DateTime データタイプは等価ではありません。Date の値を受け取るプログラムは、DateTime の値を渡すプログラムで呼び出すことはできず、その逆も同様です。このルールに従わないと、分析時にエラーが発生します。 インデックスと検索
DateTime 項目属性を、単なる構成要素として、またはキーの一部として含むインデックスを作成することができます。これらのインデックスは昇順にも降順にもできます (DBMS で許可されている場合)。 検索については、次の 2 点を考慮する必要があります:
項目属性は、その画像に関わらず、常に同様に格納されます。つまり、項目属性には日付と時間という 2 つの部分が含まれます。
「同じ日付を持つ」値を直接検索することはできません。たとえば、次のようなコードを実装する必要があります:
// 与えられた日付の中の DateTime 項目属性を検索するコード&dtFrom = ymdhmstot(1995, 10, 28, 0, 0, 0)
&dtTo = ymdhmstot( 1995,10, 29, 0, 0, 0) – 1 // 翌日より 1 秒前
For each
Where dtAttribute >= &dtFrom
Where dtAttribute <= &dtTo
…
EndFor
次の表に、再編成プロセス中に可能な項目属性のデータタイプの変更を示します。
元のデータタイプ |
変換後のデータタイプ |
|
Char1 |
Numeric2 |
Date |
Datetime |
Char1 |
N/A |
Yes4(val を使用した場合) |
Yes(CtoD 関数を使用した場合) |
Yes(CtoT 関数を使用した場合) |
Numeric2 |
Yes(Str 関数を使用した場合) |
N/A |
N/A |
N/A |
Date |
Yes3(DtoC 関数を使用した場合) |
N/A |
N/A |
Yes(時間は 12:00:00.00 AM になる) |
DateTime |
Yes3(TtoC 関数を既定値で使用した場合) |
No |
Yes(時間部分が失われる) |
N/A |
N/A- 適用されません。 Yes- 変換可能です。 No - 変換できません。値が失われます。 1 - Character、VarChar、および LongVarChar タイプです。 2 - 任意の Numeric データタイプです。 3 - 受け取り側のサイズが足りない場合、項目属性の右側が切り捨てられることがあります。 4 - 受け取り側のサイズが足りない場合、項目属性の左側が切り捨てられることがあります。
DateTime.New(Year,Month,Day, [ Hour ] , [ Minute ] , [ Second ] , [ Millisecond ] )
例
&ExpirationDateTime = DateTime.New(2018,6,5,18,0,0,0)
If &ExpirationDateTime >= DateTime.New(2018,6,5,18,0,0,0)
msg("The date and time is not allowed")
EndIf
Date データタイプ
データ タイプ リスト
|