表のデータを操作するときに、日付や時間などの演算を行ったり、日時値式のデータを文字に変換したり、文字型のデータをDATE型に変換することができます。日付のデータを操作する処理には以下のものがあります。
処理名 | 機能 |
---|---|
CURRENT DATE値関数 | 現在の日付を返却します。 |
CURRENT TIME値関数 | 現在の時刻を返却します。 |
CURRENT TIMESTAMP値関数 | 現在の時刻印を返却します。 |
ROUND_DATE関数 | 日付を指定した日時フィールドで丸めます。 |
TRUNC_DATE関数 | 日付を指定した日時フィールドで切捨てます。 |
SPAN_DATE関数 | 2つの日付間の時間隔を、指定した時間隔の単位で返却します。 |
ADD_DATE関数 | DATE型に、数値属性で表現した時間隔を加算した結果の日時を返却します。 |
LAST_DAY関数 | 当該月の最終日付を返却します。 |
EXTRACT式 | 抜き出し元の日時値式および時間隔値式から、抜き出しフィールドで指定された日時フィールドに相当する部分を抽出します。 |
CNV_CHAR関数 | 日時値式のデータを指定された書式に従って文字型に変換します。 |
CNV_DATE関数 | 指定された日付書式で記述された文字型データをDATE型に変換します。 |
CNV_TIME関数 | 指定された時刻書式で記述された文字型データをTIME型に変換します。 |
CNV_TIMESTAMP関数 | 指定された時刻印書式で記述された文字型データをTIMESTAMP型に変換します。 |
発注表から四半期ごとの発注数量の平均を求めます。
TRUNC_DATE関数により、日付を切り捨てることができます。切り捨ては、日付を年で切り捨て(当年の1月1日)、日付を月で切り捨て(当月の1日)や日付を四半期で切り捨てなどの単位で行うことができます。
SELECT 四半期,AVG(発注数量) AS 平均発注数量 FROM 発注表 GROUP BY TRUNC_DATE(発注日,'QUARTER') AS 四半期 (A) (1) (2)
(1) 日付
(2) 切り捨ての単位
(A)~(2) TRUNC_DATE関数
発注表から現在の日付までの経過日数を求めます。現在の日付は、2007-08-10とします。
SPAN_DATE関数により、日付間の差(時間隔)を求めることができます。時間隔の単位には、時間隔の単位としてYEAR、MONTHまたはDAYを指定することができ、日付間の年、月または日の変わる回数が求められます。
SELECT 発注番号, SPAN_DATE(発注日,CURRENT_DATE,'DAY') AS 経過日数 (A) (1) (2) (3) (B) FROM 発注表 WHERE 納品日 IS NULL
(1) 日付
(2) 日付
(3) 時間隔の単位
(A)~(B) SPAN_DATE関数
発注表の発注日から1ヶ月以上経過している発注番号を求めます。現在の日付は、2007-08-01とします。
ADD_DATE関数により、日付を加算することができます。時間隔の単位には、加算する単位としてYEAR、MONTHまたはDAYを指定することができ、加算数を年数、月数、日数として加算することができます。
SELECT 発注番号 FROM 発注表 WHERE 納品日 IS NULL AND ADD_DATE(発注日, 1,'MONTH') < CURRENT_DATE (A) (1) (2) (3)
(1) 日付
(2) 加算数
(3) 時間隔の単位
(A)~(3) ADD_DATE関数
発注日から月末までの日数を求めます。
LAST_DAY関数により、当該月の最終日付を求めることができます。
SELECT 発注番号,SPAN_DATE(発注日, LAST_DAY(発注日), 'DAY') AS 月末までの残日数 FROM 発注表 (A) (1) WHERE 納品日 IS NULL
(1) 日付
(A)~(1) LAST_DAY関数
気象情報管理表の最高気温日付のデータを'YYYY.MM.DD DY'の文字列に変換します。CNV_CHAR関数により、日付型を文字型に変換することができます。変換は、日付書式に従って行われます。
SELECT 地区コード , CNV_CHAR(最高気温日付, 'YYYY.MM.DD DY') AS 最高気温日 (A) (1) (2) FROM 気象情報管理表
(1) 変換元
(2) 日付書式
(A)~(2) CNV_CHAR関数
気象情報管理表の最低気温日付を指定した日付書式にしたがった文字型に変換します。なお、CHAR型のホスト変数“:DAYFMT”には、日付書式“DAY MONTH DD,YYYY”が設定されているとします。
SELECT 地区コード , CNV_CHAR(最低気温日付, :DAYFMT) AS 最低気温日 FROM 気象情報管理表
最低気温日付文字表の日付文字を日付に変換します。
CNV_DATE関数により、日付書式で記述された文字型のデータを日時型にすることができます。
SELECT 地区コード , CNV_DATE(最低気温日, 'DAY MONTH DD,YYYY') AS 日付 (A) (1) (2) FROM 最低気温日付文字表
(1) 変換元
(2) 日付書式
(A)~(2) CNV_DATE関数
在庫管理表の更新時刻文字を時刻に変換します。
CNV_TIME関数により、時刻書式で記述された文字型のデータを日時型にすることができます。
SELECT 商品コード , CNV_TIME(更新時刻文字, 'ss:mm:hh24') AS 更新時刻 (A) (1) (2) FROM 在庫管理表
(1) 変換元
(2) 時刻書式
(A)~(2) CNV_TIME関数
会議室予約表の使用日時を時刻印に変換します。
CNV_TIMESTAMP関数により、時刻印書式で記述された文字型のデータを日時型にすることができます。
SELECT 予約番号 , CNV_TIMESTAMP(使用日時文字, 'MM-DD-YYYY hh24:mm:ss') AS 使用日時 (A) (1) (2) FROM 会議室予約表
(1) 変換元
(2) 時刻印書式
(A)~(2) CNV_TIMESTAMP関数