最近のアクセス:
DateTime データタイプ

このデータタイプは、日付、時間、秒、ミリ秒を格納します。

構文

DateTime
次の表に、このデータタイプの定義に使用するプロパティを示します:
[ Value range ] プロパティ
[ Initial value ] プロパティ
[ Picture ] プロパティグループ
[ Precision ] プロパティ

 

次の表に、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 項目属性間の代入は、次のルールに従います:
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 - CharacterVarChar、および LongVarChar タイプです。
2 - 任意の Numeric データタイプです。
3 - 受け取り側のサイズが足りない場合、項目属性の右側が切り捨てられることがあります。
4 - 受け取り側のサイズが足りない場合、項目属性の左側が切り捨てられることがあります。

  • DateTime 項目属性の画像を変更しても、データベースは再編成されません。これは、項目属性の格納方法と表示方法が互いに無関係なためです。
  • 精度を変更すると、データベースを再編成することになる場合があります
  • Precision に関しては、空の値は一定です。SQL Server では、Datetime2 の最小値は 0001-01-01 ですが、GeneXus では、空の値と最小値は、Datetime: 1753-01-01 と同じです。

静的メソッド

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 データタイプ
データ タイプ リスト


サブページ
Created: 14/09/18 03:42 by Admin Last update: 21/05/20 04:37 by Admin
カテゴリ
Powered by GXwiki 3.0