Dateクラスは、SQL DATE
データ項目の抽象化を指定します。また、Dateクラスは、書式操作と解析操作を追加して、日付値のOCCIエスケープ構文をサポートします。
SQL標準DATE
はOracle Dateのサブセットであるため、このクラスはこの両方をサポートするために使用できます。
Dateクラスのオブジェクトは、クライアント側の数値計算ではスタンドアロン・クラス・オブジェクトとして使用できます。また、データベースからのフェッチおよびデータベースへの設定にも使用できます。
例13-5 データベースからDate値を取得し、スタンドアロン計算に使用する方法
次の例では、データベースから取り出されたDate列値、Dateオブジェクトを使用したバインド、およびスタンドアロンDateオブジェクトを使用した計算が示されています。
/* Create a connection */ Environment *env = Environment::createEnvironment(Environment::DEFAULT); Connection *conn = Connection(user, passwd, db); /* Create a statement and associate a DML statement to it */ string sqlStmt = "SELECT job-id, start_date from JOB_HISTORY where end_date = :x"; Statement *stmt = conn->createStatement(sqlStmt); /* Create a Date object and bind it to the statement */ Date edate(env, 2000, 9, 3, 23, 30, 30); stmt->setDate(1, edate); ResultSet *rset = stmt->executeQuery(); /* Fetch a date from the database */ while(rset->next()) { Date sd = rset->getDate(2); Date temp = sd; /*assignment operator */ /* Methods on Date */ temp.getDate(year, month, day, hour, minute, second); temp.setMonths(2); IntervalDS inter = temp.daysBetween(sd); . . }
メソッド | 概要 |
---|---|
|
|
|
n日を追加した |
|
nか月を追加した |
|
現行の |
|
|
|
指定されたフォーマットとNLSパラメータを使用して、日付を所定の入力文字列から変換します。 |
|
|
|
システム日付の入った |
|
|
|
月の最終日の |
|
翌日の曜日の |
|
日付の値を別の日付に割り当てます。 |
|
|
|
|
|
|
|
|
|
|
|
|
|
入力された日付コンポーネントから日付を設定します。 |
|
オブジェクトの状態を |
|
|
|
|
|
あるタイム・ゾーンから別のタイム・ゾーンに変換された |
Date
クラスのコンストラクタです。
構文 | 説明 |
---|---|
Date(); |
NULL のDate オブジェクトを作成します。 |
Date( const Date &srcDate); |
Date オブジェクトのコピーを作成します。 |
Date( const Environment *envp, int year = 1, unsigned int month = 1, unsigned int day = 1, unsigned int hour = 0, unsigned int minute = 0, unsigned int seconds = 0); |
整数パラメータを使用してDate オブジェクトを作成します。 |
パラメータ | 説明 |
---|---|
year | 0を除いた-4712〜9999 |
month | 1〜12 |
day | 1〜31 |
minutes | 0〜59 |
seconds | 0〜59 |
指定した日数をDate
オブジェクトに追加して、新しい日付を戻します。
構文
Date addDays( int val) const;
パラメータ | 説明 |
---|---|
val |
現行のDate オブジェクトに追加する日数を指定します。 |
指定した月数をDate
オブジェクトに追加して、新しい日付を戻します。
構文
Date addMonths( int val) const;
パラメータ | 説明 |
---|---|
val |
現行のDate オブジェクトに追加する月数を指定します。 |
現行のDate
オブジェクトと指定した日付の間の日数を戻します。
構文
IntervalDS daysBetween( const Date &date) const;
パラメータ | 説明 |
---|---|
date |
間の日数を計算するために使用する日付を指定します。 |
Bytes
オブジェクトをDate
オブジェクトに変換します。
構文
void fromBytes( const Bytes &byteStream, const Environment *envp = NULL);
パラメータ | 説明 |
---|---|
byteStream |
Bytes形式の外部書式での日付を指定します 。 |
envp |
OCCI環境を指定します。 |
Date
オブジェクトをstring
またはUString
が表す値に設定します。
値はfmt
およびnlsParam
パラメータに基づいて解析されます。nlsParam
が渡されない場合は、envp
パラメータのグローバリゼーション・サポート設定が使用されます。
関連項目 TO_DATE の詳細は、『Oracle Database SQL言語リファレンス』を参照してください。 |
構文 | 説明 |
---|---|
void fromText( const string &datestr, const string &fmt = "", const string &nlsParam = "", const Environment *envp = NULL); |
Date オブジェクトをstring が表す値に設定します。 |
void fromText( const UString &datestr, const UString &fmt, const UString &nlsParam, const Environment *envp = NULL); |
Date オブジェクトをUString が表す値に設定します。これはグローバリゼーション対応の場合です。 |
パラメータ | 説明 |
---|---|
envp |
OCCI環境を指定します。 |
datestr |
Date オブジェクトに変換する日付文字列を指定します。 |
fmt |
書式文字列を指定します。デフォルトはDD-MON-YY です。 |
nlsParam |
NLSパラメータ文字列を指定します。nlsParam が指定されている場合は、この指定によって、変換に使用されるNLSパラメータが決まります。nlsParam が指定されていない場合は、NLSパラメータがenvp から選択されます。 |
日付を年、月、日、時、分および秒の日付コンポーネントのフォームで戻します。
構文
void getDate( int &year, unsigned int &month, unsigned int &day, unsigned int &hour, unsigned int &min, unsigned int &seconds) const;
パラメータ | 説明 |
---|---|
year |
日付の年のコンポーネントを指定します。 |
month |
日付の月のコンポーネントを指定します。 |
day |
日付の日のコンポーネントを指定します。 |
hour |
日付の時のコンポーネントを指定します。 |
min |
日付の分のコンポーネントを指定します。 |
seconds |
日付の秒のコンポーネントを指定します。 |
システム日付を戻します。
構文
static Date getSystemDate( const Environment *envp);
パラメータ | 説明 |
---|---|
envp |
システム日付が戻される環境を指定します。 |
Date
がNULL
かどうかをテストします。Date
がNULL
の場合はTRUE
を、それ以外の場合はFALSE
を戻します。
構文
bool isNull() const;
現在の月の最終日を示す日付を戻します。
構文
Date lastDay() const;
指定した曜日の翌日を示す日付を戻します。
関連項目 TO_DATE の詳細は、『Oracle Database SQL言語リファレンス』を参照してください。 |
構文 | 説明 |
---|---|
Date nextDay( const string &dow) const; |
指定した曜日の翌日を示す日付を戻します。 |
Date nextDay( const UString &dow) const; |
指定した曜日の翌日を示す日付を戻します。これはグローバリゼーション対応の場合です。パラメータには、日付の作成環境に関連付けられているキャラクタ・セットを使用する必要があります。 |
パラメータ | 説明 |
---|---|
dow |
曜日を表す文字列を指定します。 |
等号(=)の右側にある日付オブジェクトを、等号(=)の左側にある日付オブジェクトに割り当てます。
構文
Date& operator=( const Date &d);
パラメータ | 説明 |
---|---|
date |
割り当てる日付オブジェクトを指定します。 |
指定した日付を比較します。2つの日付が等しい場合はTRUE
を、それ以外の場合はFALSE
を戻します。
構文
bool operator==( const Date &first, const Date &second);
パラメータ | 説明 |
---|---|
first |
比較対象の最初の日付を指定します。 |
second |
比較対象の第2の日付を指定します。 |
指定した日付を比較します。2つの日付が等しくない場合はTRUE
を、それ以外の場合はFALSE
を戻します。
構文
bool operator!=( const Date &first, const Date &second);
パラメータ | 説明 |
---|---|
first |
比較対象の最初の日付を指定します。 |
second |
比較対象の第2の日付を指定します。 |
指定した日付を比較します。第1日付が第2日付より後の日付である場合はTRUE
を、それ以外の場合はFALSE
を戻します。どちらかの日付がNULL
の場合はFALSE
を戻します。2つの日付の種類が異なる場合は、FALSE
を戻します。
構文
bool operator>( const Date &first, const Date &second);
パラメータ | 説明 |
---|---|
first |
比較対象の最初の日付を指定します。 |
second |
比較対象の第2の日付を指定します。 |
指定した日付を比較します。第1日付が第2日付以降の日付である場合はTRUE
を、それ以外の場合はFALSE
を戻します。どちらかの日付がNULL
の場合はFALSE
を戻します。2つの日付の種類が異なる場合は、FALSE
を戻します。
構文
bool operator>=( const Date &first, const Date &second);
パラメータ | 説明 |
---|---|
first |
比較対象の最初の日付を指定します。 |
second |
比較対象の第2の日付を指定します。 |
指定した日付を比較します。第1日付が第2日付より前の場合はTRUE
を、それ以外の場合はFALSE
を戻します。どちらかの日付がNULL
の場合はFALSE
を戻します。2つの日付の種類が異なる場合は、FALSE
を戻します。
構文
bool operator<( const Date &first, const Date &second);
パラメータ | 説明 |
---|---|
first |
比較対象の最初の日付を指定します。 |
second |
比較対象の第2の日付を指定します。 |
指定した日付を比較します。第1日付が第2日付以前の日付である場合はTRUE
を、それ以外の場合はFALSE
を戻します。どちらかの日付がNULL
の場合はFALSE
を戻します。2つの日付の種類が異なる場合は、FALSE
を戻します。
構文
bool operator<=( const Date &first, const Date &second);
パラメータ | 説明 |
---|---|
first |
比較対象の最初の日付を指定します。 |
second |
比較対象の第2の日付を指定します。 |
日付を指定した値に設定します。
構文
void setDate( int year = 1, unsigned int month = 1, unsigned int day = 1, unsigned int hour = 0, unsigned int minute = 0, unsigned int seconds = 0);
パラメータ | 説明 |
---|---|
year |
年の値を指定する引数を指定します。有効な値は、-4713 〜9999 です。 |
month |
月の値を指定する引数を指定します。有効な値は、1 〜12 です。 |
day |
日の値を指定する引数を指定します。有効な値は、1〜31です。 |
hour |
時の値を指定する引数を指定します。有効な値は、0〜23です。 |
min |
分の値を指定する引数を指定します。有効な値は、0〜59です。 |
seconds |
秒の値を指定する引数を指定します。有効な値は、0〜59です。 |
Date
をアトミックNULL
に設定します。
構文
void setNull();
日付をBytes
表現で戻します。
構文
Bytes toBytes() const;
fmt
とnlsParam
を使用して日付書式化された値のstring
またはUString
を戻します。
値はfmt
およびnlsParam
パラメータに基づいて解析されます。nlsParam
が渡されない場合は、envp
パラメータのグローバリゼーション・サポート設定が使用されます。
関連項目 TO_DATE の詳細は、『Oracle Database SQL言語リファレンス』を参照してください。 |
構文 | 説明 |
---|---|
string toText( const string &fmt = "", const string &nlsParam = "") const; |
fmt とnlsParam を使用して日付書式化された値のstring を戻します。 |
UString toText( const UString &fmt, const UString &nlsParam) const; |
fmt とnlsParam を使用して日付書式化された値のUString を戻します。 |
パラメータ | 説明 |
---|---|
fmt |
書式文字列を指定します。デフォルトはDD-MON-YY です。 |
nlsParam |
NLSパラメータ文字列を指定します。nlsParam が指定されている場合は、この指定によって、変換に使用されるNLSパラメータが決まります。nlsParam が指定されていない場合は、NLSパラメータがenvp から選択されます。 |
あるタイム・ゾーンから別のタイム・ゾーンに変換されたDate
値を戻します。
構文
Date toZone( const string &zone1, const string &zone2) const;
パラメータ | 説明 |
---|---|
zone1 |
変換元タイム・ゾーンを表す文字列を指定します。 |
zone2 |
変換先タイム・ゾーンを表す文字列を指定します。 |
有効なタイム・ゾーン・コードは次のとおりです。
ゾーン・コード | 値 |
---|---|
AST、ADT |
大西洋標準時または大西洋夏時間 |
BST、BDT |
ベーリング標準時またはベーリング夏時間 |
CST、CDT |
中部標準時または中部夏時間 |
EST、EDT |
東部標準時または東部夏時間 |
GMT |
グリニッジ標準時 |
HST、HDT |
アラスカ・ハワイ標準時またはアラスカ・ハワイ夏時間 |
MST、MDT |
山地標準時または山地夏時間 |
NST |
ニューファンドランド標準時 |
PST、PDT |
太平洋標準時または太平洋夏時間 |
YST、YDT |
ユーコン標準時またはユーコン夏時間 |