プライマリ・コンテンツに移動
Oracle® C++ Call Interfaceプログラマーズ・ガイド
12c リリース1 (12.1)
B72464-02
  目次へ移動
目次
索引へ移動
索引

前
 
次
 

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メソッドの概要

メソッド 概要

Date()


Dateクラスのコンストラクタです。

addDays()


n日を追加したDateオブジェクトを戻します。

addMonths()


nか月を追加したDateオブジェクトを戻します。

daysBetween()


現行のDateオブジェクトと指定した日付の間の日数を戻します。

fromBytes()


Dateオブジェクトの外部Bytes表現をDateオブジェクトに変換します。

fromText()


指定されたフォーマットとNLSパラメータを使用して、日付を所定の入力文字列から変換します。

getDate()()

Dateオブジェクトの日付と時刻のコンポーネントを戻します。

getSystemDate()


システム日付の入ったDateオブジェクトを戻します。

isNull()


DateNULLの場合はTRUEを、それ以外の場合はFALSEを戻します。

lastDay()


月の最終日のDateを戻します。

nextDay()


翌日の曜日のDateを戻します。

operator=()


日付の値を別の日付に割り当てます。

operator==()


abが同じ場合はTRUEを、それ以外の場合はFALSEを戻します。

operator!=()


abが同じでない場合はTRUEを、それ以外の場合はFALSEを戻します。

operator>()


abより後の場合はTRUEを、それ以外の場合はFALSEを戻します。

operator>=()


ab以後の場合はTRUEを、それ以外の場合はFALSEを戻します。

operator=()


abより前の場合はTRUEを、それ以外の場合はFALSEを戻します。

operator>()


ab以前の場合はTRUEを、それ以外の場合はFALSEを戻します。

setDate()


入力された日付コンポーネントから日付を設定します。

setNull()


オブジェクトの状態をNULLに設定します。

toBytes()


Dateオブジェクトを外部Bytes表現に変換します。

toText()


Dateオブジェクトを文字列として戻します。

toZone()


あるタイム・ゾーンから別のタイム・ゾーンに変換されたDateオブジェクトを戻します。


Date()

Dateクラスのコンストラクタです。

構文 説明
Date();
NULLDateオブジェクトを作成します。
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

addDays()

指定した日数をDateオブジェクトに追加して、新しい日付を戻します。

構文

Date addDays(
   int val) const;
パラメータ 説明
val
現行のDateオブジェクトに追加する日数を指定します。

addMonths()

指定した月数をDateオブジェクトに追加して、新しい日付を戻します。

構文

Date addMonths(
   int val) const;
パラメータ 説明
val
現行のDateオブジェクトに追加する月数を指定します。

daysBetween()

現行のDateオブジェクトと指定した日付の間の日数を戻します。

構文

IntervalDS daysBetween(
   const Date &date) const;
パラメータ 説明
date
間の日数を計算するために使用する日付を指定します。

fromBytes()

BytesオブジェクトをDateオブジェクトに変換します。

構文

void fromBytes(
   const Bytes &byteStream,
   const Environment *envp = NULL);
パラメータ 説明
byteStream
Bytes形式の外部書式での日付を指定します
envp
OCCI環境を指定します。

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);
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から選択されます。

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
日付の秒のコンポーネントを指定します。

getSystemDate()

システム日付を戻します。

構文

static Date getSystemDate(
   const Environment *envp);
パラメータ 説明
envp 
システム日付が戻される環境を指定します。

isNull()

DateNULLかどうかをテストします。DateNULLの場合はTRUEを、それ以外の場合はFALSEを戻します。

構文

bool isNull() const;

lastDay()

現在の月の最終日を示す日付を戻します。

構文

Date lastDay() const;

nextDay()

指定した曜日の翌日を示す日付を戻します。


関連項目:

TO_DATEの詳細は、『Oracle Database SQL言語リファレンス』を参照してください。

構文 説明
Date nextDay(
   const string &dow) const;
指定した曜日の翌日を示す日付を戻します。
Date nextDay(
   const UString &dow) const;
指定した曜日の翌日を示す日付を戻します。グローバリゼーションが有効となります。パラメータには、日付が生成された環境に関連付けられているキャラクタ・セットを使用する必要があります。

パラメータ 説明
dow
曜日を表す文字列を指定します。

operator=()

等号(=)の右側にある日付オブジェクトを、等号(=)の左側にある日付オブジェクトに割り当てます。

構文

Date& operator=(
   const Date &d);
パラメータ 説明
date
割り当てる日付オブジェクトを指定します。

operator==()

指定した日付を比較します。2つの日付が等しい場合はTRUEを、それ以外の場合はFALSEを戻します。

構文

bool operator==(
   const Date &first,
   const Date &second);
パラメータ 説明
first
比較対象の最初の日付を指定します。
second
比較対象の第2の日付を指定します。

operator!=()

指定した日付を比較します。2つの日付が等しくない場合はTRUEを、それ以外の場合はFALSEを戻します。

構文

bool operator!=(
   const Date &first,
   const Date &second);
パラメータ 説明
first
比較対象の最初の日付を指定します。
second
比較対象の第2の日付を指定します。

operator>()

指定した日付を比較します。第1日付が第2日付より後の日付である場合はTRUEを、それ以外の場合はFALSEを戻します。どちらかの日付がNULLの場合はFALSEを戻します。2つの日付の種類が異なる場合は、FALSEを戻します。

構文

bool operator>(
   const Date &first,
   const Date &second);
パラメータ 説明
first
比較対象の最初の日付を指定します。
second
比較対象の第2の日付を指定します。

operator>=()

指定した日付を比較します。第1日付が第2日付以降の日付である場合はTRUEを、それ以外の場合はFALSEを戻します。どちらかの日付がNULLの場合はFALSEを戻します。2つの日付の種類が異なる場合は、FALSEを戻します。

構文

bool operator>=(
   const Date &first,
   const Date &second);
パラメータ 説明
first
比較対象の最初の日付を指定します。
second
比較対象の第2の日付を指定します。

operator<()

指定した日付を比較します。第1日付が第2日付より前の場合はTRUEを、それ以外の場合はFALSEを戻します。どちらかの日付がNULLの場合はFALSEを戻します。2つの日付の種類が異なる場合は、FALSEを戻します。

構文

bool operator<(
   const Date &first,
   const Date &second);
パラメータ 説明
first
比較対象の最初の日付を指定します。
second
比較対象の第2の日付を指定します。

operator<=()

指定した日付を比較します。第1日付が第2日付以前の日付である場合はTRUEを、それ以外の場合はFALSEを戻します。どちらかの日付がNULLの場合はFALSEを戻します。2つの日付の種類が異なる場合は、FALSEを戻します。

構文

bool operator<=(
   const Date &first,
   const Date &second);
パラメータ 説明
first
比較対象の最初の日付を指定します。
second
比較対象の第2の日付を指定します。

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
年の値を指定する引数を指定します。有効な値は、-4713から9999です。
month
月の値を指定する引数を指定します。有効な値は、1から12です。
day
日の値を指定する引数を指定します。有効な値は、1から31です。
hour
時の値を指定する引数を指定します。有効な値は、0から23です。
min
分の値を指定する引数を指定します。有効な値は、0から59です。
seconds
秒の値を指定する引数を指定します。有効な値は、0から59です。

setNull()

DateをアトミックNULLに設定します。

構文

void setNull();

toBytes()

日付をBytes表現で戻します。

構文

Bytes toBytes() const;

toText()

fmtnlsParamを使用して日付書式化された値のstringまたはUStringを戻します。

値はfmtおよびnlsParamパラメータに基づいて解析されます。nlsParamが渡されない場合は、envpパラメータのグローバリゼーション・サポート設定が使用されます。


関連項目:

TO_DATEの詳細は、『Oracle Database SQL言語リファレンス』を参照してください。

構文 説明
string toText(
   const string &fmt = "",
   const string &nlsParam = "") const;
fmtnlsParamを使用して日付書式化された値のstringを戻します。
UString toText(
   const UString &fmt,
   const UString &nlsParam) const;
fmtnlsParamを使用して日付書式化された値のUStringを戻します。

パラメータ 説明
fmt
書式文字列を指定します。デフォルトはDD-MON-YYです。
nlsParam
NLSパラメータ文字列を指定します。nlsParamが指定されている場合は、この指定によって、変換に使用されるNLSパラメータが決まります。nlsParamが指定されていない場合は、NLSパラメータがenvpから選択されます。

toZone()

あるタイム・ゾーンから別のタイム・ゾーンに変換された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 ユーコン標準時またはユーコン夏時間