Hitachi

ノンストップデータベース HiRDB Version 10 UAP開発ガイド


17.11.4 TIME型,DATE型,及びTIMESTAMP型列のデータ変換処理

〈この項の構成〉

(1) setTime,setDate,setTimestamp,及びsetStringメソッド

setTime,setDate,setTimestamp,及びsetStringメソッドに,HiRDBのデータ型であるTIME型,DATE型,又はTIMESTAMP型のデータが設定された場合の変換処理について説明します。

HiRDBのデータ型であるTIME型,DATE型,又はTIMESTAMP型の列に対して,setTime,setDate,setTimestamp,及びsetStringメソッドを使用してデータが設定された場合,HiRDBのデータ型に応じてデータ変換が行われます。

列のデータ型とメソッドとの組み合わせによる変換処理について次の表に示します。

表17‒109 TIME型,DATE型,又はTIMESTAMP型とsetXXXメソッドとの組み合わせによる変換処理

setXXXメソッド

HiRDBのデータ型

TIME型

DATE型

TIMESTAMP型

setTime(Time Obj)※1

UAPの設定値どおりにデータベースに格納します。

SQLExceptionを投入します。

UAPの設定値hh:mm:ss[.000000]の前に「1970-01-01」を付与したデータをデータベースに格納します。

setDate(Date Obj)※2

SQLExceptionを投入します。

UAPの設定値どおりにデータベースに格納します。

UAPの設定値yyyy-MM-DDの後ろに「00:00:00[.000000]」を付与したデータをデータベースに格納します。

setTimestamp(Timestamp Obj)※3

UAPの設定値の「hh:mm:ss」部分をデータベースに格納します。

UAPの設定値の「yyyy-MM-DD」部分をデータベースに格納します。

UAPの設定値どおりにデータベースに格納します。

setString(hh:mm:ss形式の文字列)

指定された時刻をjava.sql.Time.valueOf()で変換してデータベースに格納します。※5

SQLExceptionを投入します。

SQLExceptionを投入します。

setString(yyyy-MM-DD形式の文字列)

SQLExceptionを投入します。

指定された日付をjava.sql.Date.valueOf()で変換してデータベースに格納します。※5

SQLExceptionを投入します。

setString(yyyy-MM-DD△hh:mm:ss[.ffffff]形式の文字列)※4

SQLExceptionを投入します。

SQLExceptionを投入します。

指定された日時をjava.sql.Timestamp.valueOf()で変換してデータベースに格納します。※5

実際に存在しない日時を指定した場合は,Java仮想マシンが返す値となります。

注※1

「Time Obj」は,java.sql.Timeオブジェクト「時:分:秒」の値を持つオブジェクトです。

注※2

「Date Obj」は,java.sql.Dateオブジェクト「年−月−日」の値を持つオブジェクトです。

注※3

「Timestamp Obj」は,java.sql.Timestampオブジェクト「年−月−日 時:分:秒.ナノ秒」の値を持つオブジェクトです。

注※4

[.ffffff]は,HiRDBのTIMESTAMP型の精度に合わせて,小数点以下のけた数が変わります。

また,△は半角スペースを示します。

注※5

存在しない日時を指定した場合の結果はjava.sql.Time.valueOf(),java.sql.Date.valueOf(),及びjava.sql.Timestamp.valueOf()に依存します。

例1:25:00:00は,01:00:00となります。

例2:2000-01-32は,2000-02-01となります。

例3:1582-10-05は,1582-10-15となります(ユリウス暦とグレゴリオ暦が切り替わります)。

(2) getTime,getDate,及びgetTimestampメソッド

getTime,getDate,及びgetTimestampメソッドに,HiRDBのデータ型であるTIME型,DATE型,TIMESTAMP型,又は文字列型(CHAR型,MCHAR型,NCHAR型,VARCHAR型,MVARCHAR型,及びNVARCHAR型)のデータが設定された場合の変換処理について説明します。

HiRDBのデータ型であるTIME型,DATE型,TIMESTAMP型,又は文字列型の列に対して,getTime,getDate,及びgetTimestampメソッドを使用してデータが設定された場合,HiRDBのデータ型に応じてデータ変換が行われます。

列のデータ型とメソッドとの組み合わせによる変換処理について次の表に示します。

表17‒110 TIME型,DATE型,TIMESTAMP型,又は文字列型とgetXXXメソッドとの組み合わせによる変換処理

getXXXメソッド

HiRDBのデータ型

TIME型

DATE型

TIMESTAMP型

文字列型

getTime()※2

データベースに格納されている値どおりにjava.sql.Timeのオブジェクトとして返却します。※1

SQLExceptionを投入します。

データベースから取得したTIMESTAMP型のデータの「時:分:秒」部分をjava.sql.Timeのオブジェクトとして返却します。※1

TIME型の文字列表現「hh:mm:ss」だけをjava.sql.Timeのオブジェクトとして返却します。それ以外はSQLExceptionを投入します。

getDate()※2

SQLExceptionを投入します。

データベースに格納されている値どおりにjava.sql.Dateのオブジェクトとして返却します。※1

データベースから取得したTIMESTAMP型のデータの「年−月−日」部分をjava.sql.Dateのオブジェクトとして返却します。※1

DATE型の文字列表現「yyyy-MM-DD」だけをjava.sql.Dateのオブジェクトとして返却します。それ以外はSQLExceptionを投入します。

getTimestamp()※2

データベースから取得したDATE型のデータに「1970-01-01」を付加し,小数秒を0としたデータをjava.sql.Timestampのオブジェクトとして返却します。

データベースから取得したDATE型のデータに「00:00:00.000000」を付加したデータをjava.sql.Timestampのオブジェクトとして返却します。

データベースに格納されている値どおりにjava.sql.Timestampのオブジェクトとして返却します。

TIMESTAMP型の文字列表現「yyyy-MM-DD△hh:mm:ss[.ffffff]」(△は半角スペース)だけをjava.sql.Timestampのオブジェクトとして返却します。それ以外はSQLExceptionを投入します。

(凡例)

文字列型:CHAR型,MCHAR型,NCHAR型,VARCHAR型,MVARCHAR型,及びNVARCHAR型

注※1

値の設定について記載していない日付項目(年−月−日)の設定値は「1970-01-01」,時間項目(時:分:秒.ミリ秒)の設定値は「00:00:00.000000」とします。

注※2

データベースに格納されている日時とjava.sql.Time,java.sql.Date,及びjava.sql.Timestampから得られる日時は異なることがあります。

例1:25:00:00は,01:00:00となります。

例2:2000-01-32は,2000-02-01となります。

例3:1582-10-05と1582-10-15は,どちらも1582-10-15となります(ユリウス暦とグレゴリオ暦が切り替わります)。