ページの先頭行へ戻る
Symfoware Server V10.0.0 SQLリファレンス

2.1.2 定数

機能

NULLでない値を指定します。

記述形式

文字列定数

記述形式

参照項番
一般規則
文字型を取り扱うコードとしてEUCコードを使用した場合
  • 文字列定数に指定できる文字のコードは、EUCコードのコードセット0(1バイト)、EUCコードのコードセット1(2バイト)、EUCコードのコードセット2(2バイト)およびEUCコードのコードセット3(3バイト)です。

  • 文字列定数に各国語文字を指定することができます。

  • 文字列定数に引用符(')を指定するときは、引用符(')を2つ連続して記述します。

注意

文字列定数に各国語文字を指定する場合、EUCコードの2バイトコードおよび3バイトコードはそのままデータとして扱われ、比較の対象となったり、データベースへの格納の対象となります。このため文字列データに空白を含む場合、文字の空白と各国語文字の空白が異なるコードであることなどに注意が必要です。

文字型を取り扱う文字コード系としてシフトJISコードを使用した場合
  • 文字列定数に指定できる文字コード系は、シフトJISコードのコードセット0(1バイト)、シフトJISコードのコードセット1(2バイト)、シフトJISコードのコードセット2(2バイト)およびシフトJISコードのコードセット3(2バイト)です。

  • 文字列定数に各国語文字を指定することができます。

  • 文字列定数に引用符(')を指定するときは、引用符(')を2つ連続して記述します。

注意

文字列定数に各国語文字を指定する場合、シフトJISコードの2バイトコードはそのままデータとして扱われ、比較の対象となったり、データベースへの格納の対象となります。このため文字列データに空白を含む場合、文字の空白と各国語文字の空白が異なるコードであることなどに注意が必要です。

文字型を取り扱う文字コード系としてUNICODEを使用した場合
  • 文字列定数にUNICODEの文字を指定することができます。

  • 文字列定数に各国語文字を指定することができます。

  • 文字列定数に引用符(')を指定するときは、引用符(')を2つ連続して記述します。

使用例(文字列定数)

1

'TOKYO' 'T123'

2

'JAPAN''TOKYO'''→結果は、JAPAN'TOKYO'になります。

各国語文字列定数

記述形式

各国語文字列定数を取り扱う文字コード系としてEUCコードまたはシフトJISコードを使用した場合

各国語文字列定数を取り扱う文字コード系としてUNICODEを使用した場合

参照項番
一般規則
  • 各国語文字列定数は、各国語文字のデータを指定します。データ型は各国語文字列型です。

各国語文字列定数を取り扱う文字コード系としてEUCコードを使用する場合
  • 指定できる各国語文字の文字コード系は、EUCコードのコードセット1(2バイト)およびEUCコードのコードセット3(3バイト)です。

注意

各国語文字は、EUCコードの2バイトコードおよび3バイトコードはCOBOL_EUCに変換され、2バイトコードのままデータとして扱われ、比較の対象となったり、データベースへの格納の対象となります。

各国語文字列定数を取り扱う文字コード系としてシフトJISコードを使用する場合
  • 指定できる各国語文字の文字コード系は、シフトJISコードのコードセット1(2バイト)、コードセット2(2バイト)、またはコードセット3(2バイト)です。

各国語文字列定数を取り扱う文字コード系としてUNICODEを使用する場合
  • 指定できる各国語文字の文字コード系は、UCS-2の文字です。補助文字(1~16面の4バイト文字)はUCS-2の2文字として格納されます。

使用例(各国語文字列定数)

N'東京'

日時定数

記述形式

構文要素の構成

一般規則
日時定数
  • 日時定数の年、月、日、時、分、秒は、日時値を指定します。日時値は、暦上存在する自然な日時値であることが必要です。

  • 日時定数中で、年は最大4桁、月~秒は最大2桁の数字で指定します。

  • 日付定数、時刻定数、時刻印定数を引用符で囲んだ文字列を日付列、時刻列、時刻印列といいます。

DATE(日付定数)
  • DATEで始まる定数を、“日付定数”と呼びます。

  • 日付定数は、年から日までの10文字の日付を格納することができます。年から日のそれぞれを日時フィールドYEAR、MONTH、DAYといいます。日付定数の日時フィールドの有効値を以下に示します。

    表2.1 日付定数の日時フィールドの有効値

    日時フィールド

    意味

    有効値

    YEAR

    1 ~ 9999

    MONTH

    1 ~ 12

    DAY

    1 ~ 31

TIME(時刻定数)
  • TIMEで始まる定数を、“時刻定数”と呼びます。

  • 時刻定数は、時から秒までの8文字の時刻を格納することができます。時から秒のそれぞれを日時フィールドHOUR、MINUTE、SECONDといいます。時刻定数の日時フィールドの有効値を以下に示します。

    表2.2 時刻定数の日時フィールドの有効値

    日時フィールド

    意味

    有効値

    HOUR

    0 ~ 23

    MINUTE

    0 ~ 59

    SECOND

    0 ~ 59

TIMESTAMP(時刻印定数)
  • TIMESTAMPで始まる定数を、“時刻印定数”と呼びます。

  • 時刻印定数は、年から秒までの19文字の時刻印を格納することができます。年から秒のそれぞれを日時フィールドYEAR、MONTH、DAY、HOUR、MINUTE、SECONDといいます。時刻印定数の日時フィールドの有効値を以下に示します。

    表2.3 時刻印定数の日時フィールドの有効値

    日時フィールド

    意味

    有効値

    YEAR

    1 ~ 9999

    MONTH

    1 ~ 12

    DAY

    1 ~ 31

    HOUR

    0 ~ 23

    MINUTE

    0 ~ 59

    SECOND

    0 ~ 59

使用例(日時定数)
例1

日付定数

DATE '2007-04-10'

例2

時刻定数

TIME '12:10:40'

例3

時刻印定数

TIMESTAMP '2007-04-10 12:10:40'

時間隔定数

記述形式

構文要素の構成

参照項番
一般規則
時間隔定数
  • 時間隔定数の年、月、日、時、分、秒は、日時値を指定します。日時値は、開始フィールドおよび単一日時フィールドを除き、暦上存在する自然な日時値であることが必要です。

  • 時間隔修飾子は、時間隔の内容を示す修飾子です。

  • 単一日時フィールドは、日時を示す1つの要素で、年、月、日、時、分、秒があります。

  • 日時フィールドには順位があります。その順位は、最上位のものから最下位のものの順に、YEAR、MONTH、DAY、HOUR、MINUTE、SECONDです。

  • 非秒日時フィールドは、単一日時フィールドのうち、秒を除いた残りのことです。

  • 時間隔先行フィールド精度は、1以上9以下の符号なし整数であることが必要です。

  • 時間隔定数は、年月クラスと日時クラスに分類されます。各クラスにまたがるような日時フィールドを持つような指定はできません。

  • 開始フィールドは終了フィールドより上位であることが必要です。

  • 年月クラスは、開始フィールドおよび終了フィールドにより指定された年および月からなる連続する日時フィールドを含みます。または、単一日時フィールドにより指定される年または月の単一日時フィールドを含みます。時間隔定数の年月クラスを以下に示します。

    表2.4 時間隔定数の年月クラス

    開始フィールド

    終了フィールド

    YEAR

    MONTH

    表2.5 時間隔定数の年月クラス

    単一日時フィールド

    YEAR

    MONTH

  • 日時クラスは、開始フィールドおよび終了フィールドにより指定された日、時、分および秒からなる連続する任意の日時フィールドを含みます。または、単一日時フィールドにより指定される日、時、分および秒の単一日時フィールドを含みます。時間隔定数の日時クラスを以下に示します。

    表2.6 時間隔定数の日時クラス

    開始フィールド

    終了フィールド

    DAY

    HOUR
    MINUTE
    SECOND

    HOUR

    MINUTE
    SECOND

    MINUTE

    SECOND

    表2.7 時間隔定数の日時クラス

    単一日時フィールド

    DAY

    HOUR

    MINUTE

    SECOND

  • 時間隔定数の最初の日時フィールドはn桁の整数です。nは時間隔先行フィールド精度で指定された符号なし整数です。時間隔先行フィールド精度を省略した場合は、以下のようになります。時間隔定数の先行フィールド精度の省略値を以下に示します。

    表2.8 時間隔定数の先行フィールド精度の省略値

    開始フィールド

    時間隔定数の先行フィールド精度の省略値

    YEAR

    2

    MONTH

    2

    DAY

    2

    HOUR

    2

    MINUTE

    2

    SECOND

    2

  • 時間隔定数の2番目以降の日時フィールドに許される値は以下のように制約されています。時間隔定数の日時フィールドの有効値を以下に示します。

    表2.9 時間隔定数の日時フィールドの有効値

    日時フィールド

    有効値

    MONTH

    0 ~ 11

    HOUR

    0 ~ 23

    MINUTE

    0 ~ 59

    SECOND

    0 ~ 59

使用例(時間隔定数)
例1

年-月型

INTERVAL '1-6' YEAR TO MONTH

例2

日-秒型

INTERVAL '10 12:10:40' DAY TO SECOND

例3

時間隔先行フィールド精度を指定

INTERVAL '100:29' MINUTE(3) TO SECOND

符号つき数定数

記述形式

構文要素の構成

参照項番
一般規則
符号なし数定数
  • 符号なし数定数は、真数定数と概数定数があります。

符号なし整数
  • 符号なし整数は、符号の指定を行わない整数です。

真数定数
  • 真数定数は、真数のデータを指定します。データ型は真数型です。

  • 真数定数は、指定する値によって、扱われるデータ型が変わります。データ型について以下に示します。

    要素指定

    桁数
    (注1)

    指定される値

    データ型

    小数点なし

    1 ~ 5

    -32768 ~ +32767

    SMALLINT

    5 ~ 10

    -2147483648 ~ -32769
    + 32768 ~ +2147483647

    INTEGER

    10 ~ 18

    -999999999999999999 ~ -2147483649
    +2147483648 ~ +999999999999999999

    DEC(精度,0)
    (注2)

    19以上

    -----

    構文エラー

    小数点あり

    1 ~ 18

    -999999999999999999. ~ +999999999999999999.

    DEC(精度,位取り)
    (注2)

    19以上

    -----

    構文エラー

    注1) 桁数に小数点は含みません。

    注2) 精度は数字の数、位取りは小数点以下の数字の数のことです。

概数定数
  • 概数定数は、概数のデータを指定します。データ型は概数型です。

  • 概数定数は、DOUBLE PRECISION型で扱われます。

使用例(符号つき数定数)
例1

真数定数

+15.5

例2

概数定数

-20.4E5