ページのトップに戻る
Symfoware Server SQLビギナーズガイド

6.5 日付のデータを操作する

表のデータを操作するときに、日付や時間などの演算を行ったり、日時値式のデータを文字に変換したり、文字型のデータをDATE型に変換することができます。日付のデータを操作する処理には以下のものがあります。

表6.9 日付のデータを操作する処理

処理名

機能

CURRENT DATE値関数

現在の日付を返却します。

CURRENT TIME値関数

現在の時刻を返却します。

CURRENT TIMESTAMP値関数

現在の時刻印を返却します。

ROUND_DATE関数

年、月、半期などの単位で丸めた日付を返却します。

TRUNC_DATE関数

年、月、半期などの単位で切り捨てた日付を返却します。

SPAN_DATE関数

2つの日付間の時間隔を返却します。

ADD_DATE関数

DATE型に、数値属性で表現した時間隔を加算した結果の 日時を返却します。

LAST_DAY関数

当該月の最終日付を返却します。

CNV_CHAR関数

日時値式のデータを文字型に変換します。

CNV_DATE関数

文字型のデータをDATE型に変換します。


1

発注表から四半期ごとの発注数量の平均を求めます。

TRUNC_DATE関数により、日付を切り捨てることができます。切り捨ては、日付を年で切り捨て(当年の1月1日)、日付を月で切り捨て(当月の1日)や日付を四半期で切り捨てなどの単位で行うことができます。

SELECT 四半期,AVG(発注数量) AS 平均発注数量
  FROM 発注表
  GROUP BY TRUNC_DATE(発注日,'QUAETER') AS 四半期
               (A)       (1)      (2)

(1) 日付

(2) 切り捨ての単位

(A)~(2) TRUNC_DATE関数

2

発注表から現在の日付までの経過日数を求めます。現在の日付は、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関数

3

発注表の発注日から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関数

4

発注日から月末までの日数を求めます。

LAST_DAY関数により、当該月の最終日付を求めることができます。

SELECT 発注番号,SPAN_DATE(発注日, LAST_DAY(発注日), 'DAY')  AS 月末までの残日数
  FROM 発注表                        (A)     (1)
  WHERE 納品日 IS NULL

(1) 日付

(A)~(1) LAST_DAY関数

5

気象情報管理表の最高気温日付のデータを'YYYY.MM.DD DY'の文字列に変換します。CNV_CHAR関数により、日付型を文字型に変換することができます。変換は、日付書式に従って行われます。

SELECT 地区コード  , CNV_CHAR(最高気温日付, 'YYYY.MM.DD DY') AS  最高気温日
                       (A)          (1)            (2)
  FROM 気象情報管理表

(1) 変換元

(2) 日付書式

(A)~(2) CNV_CHAR関数

6

気象情報管理表の最低気温日付を指定した日付書式にしたがった文字型に変換します。なお、CHAR型のホスト変数“:DAYFMT”には、日付書式“DAY MONTH DD,YYYY”が設定されているとします。

SELECT 地区コード  , CNV_CHAR(最低気温日付, :DAYFMT)  AS  最低気温日
  FROM 気象情報管理表

7

最低気温日付文字表の日付文字を日付に変換します。

CNV_DATE関数により、日付書式で記述された文字型のデータを日時型にすることができます。

SELECT 地区コード  , CNV_DATE(最低気温日, 'DAY MONTH DD,YYYY')  AS 日付
                        (A)       (1)           (2)
  FROM 最低気温日付文字表

(1) 変換元

(2) 日付書式

(A)~(2) CNV_DATE関数