13.13 Dateクラス
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); . . }
表13-16 Dateメソッドの概要
メソッド | 概要 |
---|---|
|
|
n日を追加した |
|
nか月を追加した |
|
現行の |
|
|
|
指定されたフォーマットとNLSパラメータを使用して、日付を所定の入力文字列から変換します。 |
|
|
|
システム日付の入った |
|
|
|
月の最終日の |
|
翌日の曜日の |
|
日付の値を別の日付に割り当てます。 |
|
|
|
|
|
|
|
|
|
|
|
|
|
入力された日付コンポーネントから日付を設定します。 |
|
オブジェクトの状態を |
|
|
|
|
|
あるタイム・ゾーンから別のタイム・ゾーンに変換された |
13.13.1 Date()
Date
クラスのコンストラクタです。
構文 | 説明 |
---|---|
Date(); |
|
Date( const Date &srcDate); |
|
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); |
整数パラメータを使用して |
パラメータ | 説明 |
---|---|
year |
0を除いた-4712から9999 |
month |
1から12 |
day |
1から31 |
minutes |
0から59 |
seconds |
0から59 |
13.13.2 addDays()
指定した日数をDate
オブジェクトに追加して、新しい日付を戻します。
構文
Date addDays( int val) const;
パラメータ | 説明 |
---|---|
val |
現行の |
13.13.3 addMonths()
指定した月数をDate
オブジェクトに追加して、新しい日付を戻します。
構文
Date addMonths( int val) const;
パラメータ | 説明 |
---|---|
val |
現行の |
13.13.4 daysBetween()
現行のDate
オブジェクトと指定した日付
の間の日数を戻します。
構文
IntervalDS daysBetween( const Date &date) const;
パラメータ | 説明 |
---|---|
date |
間の日数を計算するために使用する日付を指定します。 |
13.13.5 fromBytes()
Bytes
オブジェクトをDate
オブジェクトに変換します。
構文
void fromBytes( const Bytes &byteStream, const Environment *envp = NULL);
パラメータ | 説明 |
---|---|
byteStream |
Bytes形式の外部書式での日付を指定します |
envp |
OCCI環境を指定します。 |
13.13.6 fromText()
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); |
|
void fromText( const UString &datestr, const UString &fmt, const UString &nlsParam, const Environment *envp = NULL); |
|
パラメータ | 説明 |
---|---|
envp |
OCCI環境を指定します。 |
datestr |
|
fmt |
書式文字列を指定します。デフォルトは |
nlsParam |
NLSパラメータ文字列を指定します。 |
13.13.7 getDate()
日付を年、月、日、時、分および秒の日付コンポーネントのフォームで戻します。
構文
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 |
日付の秒のコンポーネントを指定します。 |
13.13.8 getSystemDate()
システム日付を戻します。
構文
static Date getSystemDate( const Environment *envp);
パラメータ | 説明 |
---|---|
envp |
システム日付が戻される環境を指定します。 |
13.13.9 isNull()
Date
がNULL
かどうかをテストします。Date
がNULL
の場合はTRUE
を、それ以外の場合はFALSE
を戻します。
構文
bool isNull() const;
13.13.11 nextDay()
指定した曜日の翌日を示す日付を戻します。
関連項目:
TO_DATE
の詳細は、『Oracle Database SQL言語リファレンス』を参照してください。
構文 | 説明 |
---|---|
Date nextDay( const string &dow) const; |
指定した曜日の翌日を示す日付を戻します。 |
Date nextDay( const UString &dow) const; |
指定した曜日の翌日を示す日付を戻します。グローバリゼーションが有効となります。パラメータには、日付が生成された環境に関連付けられているキャラクタ・セットを使用する必要があります。 |
パラメータ | 説明 |
---|---|
dow |
曜日を表す文字列を指定します。 |
13.13.12 operator=()
等号(=)の右側にある日付オブジェクトを、等号(=)の左側にある日付オブジェクトに割り当てます。
構文
Date& operator=( const Date &d);
パラメータ | 説明 |
---|---|
date |
割り当てる日付オブジェクトを指定します。 |
13.13.13 operator==()
指定した日付を比較します。2つの日付が等しい場合はTRUE
を、それ以外の場合はFALSE
を戻します。
構文
bool operator==( const Date &first, const Date &second);
パラメータ | 説明 |
---|---|
first |
比較対象の最初の日付を指定します。 |
second |
比較対象の第2の日付を指定します。 |
13.13.14 operator!=()
指定した日付を比較します。2つの日付が等しくない場合はTRUE
を、それ以外の場合はFALSE
を戻します。
構文
bool operator!=( const Date &first, const Date &second);
パラメータ | 説明 |
---|---|
first |
比較対象の最初の日付を指定します。 |
second |
比較対象の第2の日付を指定します。 |
13.13.15 operator>()
指定した日付を比較します。第1日付が第2日付より後の日付である場合はTRUE
を、それ以外の場合はFALSE
を戻します。どちらかの日付がNULL
の場合はFALSE
を戻します。2つの日付の種類が異なる場合は、FALSE
を戻します。
構文
bool operator>( const Date &first, const Date &second);
パラメータ | 説明 |
---|---|
first |
比較対象の最初の日付を指定します。 |
second |
比較対象の第2の日付を指定します。 |
13.13.16 operator>=()
指定した日付を比較します。第1日付が第2日付以降の日付である場合はTRUE
を、それ以外の場合はFALSE
を戻します。どちらかの日付がNULL
の場合はFALSE
を戻します。2つの日付の種類が異なる場合は、FALSE
を戻します。
構文
bool operator>=( const Date &first, const Date &second);
パラメータ | 説明 |
---|---|
first |
比較対象の最初の日付を指定します。 |
second |
比較対象の第2の日付を指定します。 |
13.13.17 operator<()
指定した日付を比較します。第1日付が第2日付より前の場合はTRUE
を、それ以外の場合はFALSE
を戻します。どちらかの日付がNULL
の場合はFALSE
を戻します。2つの日付の種類が異なる場合は、FALSE
を戻します。
構文
bool operator<( const Date &first, const Date &second);
パラメータ | 説明 |
---|---|
first |
比較対象の最初の日付を指定します。 |
second |
比較対象の第2の日付を指定します。 |
13.13.18 operator<=()
指定した日付を比較します。第1日付が第2日付以前の日付である場合はTRUE
を、それ以外の場合はFALSE
を戻します。どちらかの日付がNULL
の場合はFALSE
を戻します。2つの日付の種類が異なる場合は、FALSE
を戻します。
構文
bool operator<=( const Date &first, const Date &second);
パラメータ | 説明 |
---|---|
first |
比較対象の最初の日付を指定します。 |
second |
比較対象の第2の日付を指定します。 |
13.13.19 setDate()
日付を指定した値に設定します。
構文
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 |
年の値を指定する引数を指定します。有効な値は、 |
month |
月の値を指定する引数を指定します。有効な値は、 |
day |
日の値を指定する引数を指定します。有効な値は、1から31です。 |
hour |
時の値を指定する引数を指定します。有効な値は、0から23です。 |
min |
分の値を指定する引数を指定します。有効な値は、0から59です。 |
seconds |
秒の値を指定する引数を指定します。有効な値は、0から59です。 |
13.13.22 toText()
fmt
とnlsParam
を使用して日付書式化された値のstring
またはUString
を戻します。
値はfmt
およびnlsParam
パラメータに基づいて解析されます。nlsParam
が渡されない場合は、envp
パラメータのグローバリゼーション・サポート設定が使用されます。
関連項目:
TO_DATE
の詳細は、『Oracle Database SQL言語リファレンス』を参照してください。
構文 | 説明 |
---|---|
string toText( const string &fmt = "", const string &nlsParam = "") const; |
|
UString toText( const UString &fmt, const UString &nlsParam) const; |
|
パラメータ | 説明 |
---|---|
fmt |
書式文字列を指定します。デフォルトは |
nlsParam |
NLSパラメータ文字列を指定します。 |
13.13.23 toZone()
あるタイム・ゾーンから別のタイム・ゾーンに変換されたDate
値を戻します。
構文
Date toZone( const string &zone1, const string &zone2) const;
パラメータ | 説明 |
---|---|
zone1 |
変換元タイム・ゾーンを表す文字列を指定します。 |
zone2 |
変換先タイム・ゾーンを表す文字列を指定します。 |
有効なタイム・ゾーン・コードは次のとおりです。
ゾーン・コード | 値 |
---|---|
|
大西洋標準時または大西洋夏時間 |
|
ベーリング標準時またはベーリング夏時間 |
|
中部標準時または中部夏時間 |
|
東部標準時または東部夏時間 |
|
グリニッジ標準時 |
|
アラスカ・ハワイ標準時またはアラスカ・ハワイ夏時間 |
|
山地標準時または山地夏時間 |
|
ニューファンドランド標準時 |
|
太平洋標準時または太平洋夏時間 |
|
ユーコン標準時またはユーコン夏時間 |