DATE データ型
更新 : 2007 年 11 月
DATE データ型は、8 バイトの浮動小数点数を使って実装されています。日付は、1899 年 12 月 30 日の午前零時を 0 として、整数値の増分で表現されます。時間は、数値の小数部分の絶対値として表現されます。次の表は、いくつかの日付の例と、その DATE 型に対応する数値を示したものです。
日付と時刻 |
対応する数値 |
---|---|
1899 年 12 月 30 日午前零時 |
0.00 |
1900 年 1 月 1 日午前零時 |
2.00 |
1900 年 1 月 4 日午前零時 |
5.00 |
1900 年 1 月 4 日午前 6 時 |
5.25 |
1900 年 1 月 4 日正午 |
5.50 |
1900 年 1 月 4 日午後 9 時 |
5.875 |
DATE データ型と COleDateTime クラスでは、このような数値として日付と時刻を扱います。COleDateTime クラスには、他の一般的な日付形式との間で変換処理を行うメソッドなど、DATE 値を扱うための、さまざまなメソッドが含まれています。
こうした日時形式をオートメーションで使用する際は、次の点に注意してください。
日付は現地時刻で指定されるため、異なるタイム ゾーンの日付を扱う場合は、手動で同期させる必要があります。
日付型では、夏時間は考慮されません。
0 より小さい (1899 年 12 月 30 日より前) 日付値では、日付の時系列が不連続になります。これは、日付値の整数部分が符号付きで表現されるのに対し、小数部分は符号なしで表現されるためです。つまり、日付値の整数部分は正と負の両方の値を取るのに対し、小数部分は常に論理上の日付全体に加算されます。次の表に具体的な例をいくつか示します。
日付と時刻 |
対応する数値 |
---|---|
1899 年 12 月 27 日午前零時 |
-3.00 |
1899 年 12 月 28 日正午 |
-2.50 |
1899 年 12 月 28 日午前零時 |
-2.00 |
1899 年 12 月 29 日午前零時 |
-1.00 |
1899 年 12 月 30 日午後 6 時 |
-0.75 |
1899 年 12 月 30 日正午 |
-0.50 |
1899 年 12 月 30 日午前 6 時 |
-0.25 |
1899 年 12 月 30 日午前零時 |
0.00 |
1899 年 12 月 30 日午前 6 時 |
0.25 |
1899 年 12 月 30 日正午 |
0.50 |
1899 年 12 月 30 日午後 6 時 |
0.75 |
1899 年 12 月 31 日午前零時 |
1.00 |
1900 年 1 月 1 日午前零時 |
2.00 |
1900 年 1 月 1 日正午 |
2.50 |
1900 年 1 月 2 日午前零時 |
3.00 |
-1.0 から 0.0 までの日付値と、その対応する絶対値の日付値とが、同じ論理日付を表している点に注意してください。これは、日付値の負の整数部分から、丸一日分を減じることなく、小数部分が加算されているためです。
DATE 型および COleDateTime 型の詳細については、「COleDateTime クラス」および「日付と時刻 : オートメーションのサポート」を参照してください。