<!--
$Header: /usr/prj/pg/cvsroot/doc/doc/src/sgml/datatype.sgml,v 1.21 2001/08/31 02:08:46 t-ishii Exp $
-->

 <chapter id="datatype">
  <!--<title id="datatype-title">Data Types</title>-->

  <title id="datatype-title">データ型</title>
<indexterm><primary sortas="でーたがた">データ型</primary></indexterm>
<indexterm><primary>SQL</primary><secondary sortas="でーたがた">データ型</secondary></indexterm>
  <para>
   <!--<productname>Postgres</productname> has a rich set of native data 
   types available to users.
   Users may add new types to <productname>Postgres</productname> using the
   <command>CREATE TYPE</command> command.-->

   <productname>Postgres</productname>では、ユーザーのために多くのデータ型を用意しています。また、<command>CREATE TYPE</command>コマンドを使用することにより、<productname>Postgres</productname>に新しい型を追加することも可能です。

  </para>

  <para>
   <!--<xref linkend="datatype-table"> shows all general-purpose data types
   available to users.  Most of the alternative names listed in the
   <quote>Aliases</quote> column are the names used internally by
   <productname>Postgres</productname> for historical reasons.  In
   addition, some internally used or deprecated types are available,
   but they are not documented here.  Many of the built-in types have
   obvious external formats. However, several types are either unique
   to <productname>Postgres</productname>, such as open and closed
   paths, or have several possibilities for formats, such as the date
   and time types.-->

   <xref linkend="datatype-table">に、ユーザーが使用可能な一般的なすべてのデータ型を示します。<quote>別名</quote>カラムに書かれた名前は<productname>Postgres</productname>内部で使用されている名前で、それらには歴史的根拠があります。また、内部的に使用されている、または削除予定の型も使用可能ですが、このドキュメントには明記されていません。多くの既存の型は出力形式があります。しかし、オープンパスやクローズパスなどのいくつかの型は<productname>Postgres</productname>特有のものであったり、日付データ型やtime型のようにいくつかの形式を持つものもあります。

  </para>

   <table id="datatype-table">
    <!--<title>Data Types</title>-->

    <title>データ型</title>

    <tgroup cols="3">
     <thead>
      <row>
       <!--<entry>Type Name</entry>
       <entry>Aliases</entry>
       <entry>Description</entry>-->

       <entry>データ型名</entry>
       <entry>別名</entry>
       <entry>説明</entry>

      </row>
     </thead>

     <tbody>
      <row>
       <entry><type>bigint</type><indexterm><primary>bigint</primary></indexterm><indexterm><primary sortas="SQLでーたがた">SQLデータ型</primary><secondary>bigint</secondary></indexterm></entry>
       <entry><type>int8</type><indexterm><primary>int8</primary></indexterm><indexterm><primary sortas="SQLでーたがた">SQLデータ型</primary><secondary>int8</secondary></indexterm></entry>
       <!--<entry>signed eight-byte integer</entry>-->
       <entry>8バイト符号付整数</entry>

      </row>

      <row>
       <entry><type>bit</type><indexterm><primary>bit</primary></indexterm><indexterm><primary sortas="SQLでーたがた">SQLデータ型</primary><secondary>bit</secondary></indexterm></entry>
       <entry></entry>
       <!--<entry>fixed-length bit string</entry>-->
       <entry>固定長ビット列</entry>
      </row>

      <row>
       <entry><type>bit varying(<replaceable>n</replaceable>)</type><indexterm><primary>bit varying</primary></indexterm><indexterm><primary sortas="SQLでーたがた">SQLデータ型</primary><secondary>bit varying</secondary></indexterm></entry>
       <entry><type>varbit(<replaceable>n</replaceable>)</type><indexterm><primary>varbit</primary></indexterm><indexterm><primary sortas="SQLでーたがた">SQLデータ型</primary><secondary>varbit</secondary></indexterm></entry>
       <!--<entry>variable-length bit string</entry>-->
       <entry>可変長ビット列</entry>

      </row>

      <row>
       <entry><type>boolean</type><indexterm><primary>boolean</primary></indexterm><indexterm><primary sortas="SQLでーたがた">SQLデータ型</primary><secondary>boolean</secondary></indexterm></entry>
       <entry><type>bool</type><indexterm><primary>bool</primary></indexterm><indexterm><primary sortas="SQLでーたがた">SQLデータ型</primary><secondary>bool</secondary></indexterm></entry>
       <!--<entry>logical Boolean (true/false)</entry>-->
       <entry>真偽</entry>
      </row>

      <row>
       <entry><type>box</type><indexterm><primary>box</primary></indexterm><indexterm><primary sortas="SQLでーたがた">SQLデータ型</primary><secondary>box</secondary></indexterm></entry>
       <entry></entry>
       <!--<entry>rectangular box in 2D plane</entry>-->
       <entry>矩形 (左下の座標, 右上の座標)</entry>
      </row>

      <row>
       <entry><type>character(<replaceable>n</replaceable>)</type><indexterm><primary>character</primary></indexterm><indexterm><primary sortas="SQLでーたがた">SQLデータ型</primary><secondary>character(n)</secondary></indexterm></entry>
       <entry><type>char(<replaceable>n</replaceable>)</type><indexterm><primary>char</primary></indexterm><indexterm><primary sortas="SQLでーたがた">SQLデータ型</primary><secondary>char(n)</secondary></indexterm></entry>
       <!--<entry>fixed-length character string</entry>-->
       <entry>固定長文字列</entry>
      </row>

      <row>
       <entry><type>character varying(<replaceable>n</replaceable>)</type><indexterm><primary>character varying</primary></indexterm><indexterm><primary sortas="SQLでーたがた">SQLデータ型</primary><secondary>character varying(n)</secondary></indexterm></entry>
       <entry><type>varchar(<replaceable>n</replaceable>)</type><indexterm><primary>varchar</primary></indexterm><indexterm><primary sortas="SQLでーたがた">SQLデータ型</primary><secondary>varchar(n)</secondary></indexterm></entry>
       <!--<entry>variable-length character string</entry>-->
       <entry>可変長文字列</entry>
      </row>

      <row>
       <entry><type>cidr</type><indexterm><primary>cidr</primary></indexterm><indexterm><primary sortas="SQLでーたがた">SQLデータ型</primary><secondary>cidr</secondary></indexterm></entry>
       <entry></entry>
       <!--<entry>IP network address</entry>-->
       <entry>IPネットワークアドレス</entry>
      </row>

      <row>
       <entry><type>circle</type><indexterm><primary>circle</primary></indexterm><indexterm><primary sortas="SQLでーたがた">SQLデータ型</primary><secondary>circle</secondary></indexterm></entry>
       <entry></entry>
       <!--<entry>circle in 2D plane</entry>-->
       <entry>円 (中心点の座標, 半径)</entry>
      </row>

      <row>
       <entry><type>date<indexterm><primary>date</primary></indexterm><indexterm><primary sortas="SQLでーたがた">SQLデータ型</primary><secondary>date</secondary></indexterm></type></entry>
       <entry></entry>
       <!--<entry>calendar date (year, month, day)</entry>-->
       <entry>日付（年月日）</entry>
      </row>

      <row>
       <entry><type>double precision<indexterm><primary>double precision</primary></indexterm><indexterm><primary sortas="SQLでーたがた">SQLデータ型</primary><secondary>double precision</secondary></indexterm></type></entry>
       <entry><type>float8<indexterm><primary>float8</primary></indexterm><indexterm><primary sortas="SQLでーたがた">SQLデータ型</primary><secondary>float8</secondary></indexterm></type></entry>
       <!--<entry>double precision floating-point number</entry>-->
       <entry>8バイト浮動小数点</entry>
      </row>

      <row>
       <entry><type>inet<indexterm><primary>inet</primary></indexterm><indexterm><primary sortas="SQLでーたがた">SQLデータ型</primary><secondary>inet</secondary></indexterm></type></entry>
       <entry></entry>
       <!--<entry>IP host address</entry>-->
       <entry>IPホストアドレス</entry>
      </row>

      <row>
       <entry><type>integer</type><indexterm><primary>integer</primary></indexterm><indexterm><primary sortas="SQLでーたがた">SQLデータ型</primary><secondary>integer</secondary></indexterm></entry>
       <entry><type>int</type>、<type>int4</type><indexterm><primary>int</primary></indexterm><indexterm><primary sortas="SQLでーたがた">SQLデータ型</primary><secondary>int</secondary></indexterm><indexterm><primary>int4</primary></indexterm><indexterm><primary sortas="SQLでーたがた">SQLデータ型</primary><secondary>int4</secondary></indexterm></entry>
       <!--<entry>signed four-byte integer</entry>-->
       <entry>4バイト符号付整数</entry>
      </row>

      <row>
       <entry><type>interval</type><indexterm><primary>interval</primary></indexterm><indexterm><primary sortas="SQLでーたがた">SQLデータ型</primary><secondary>interval</secondary></indexterm></entry>
       <entry></entry>
       <!--<entry>general-use time span</entry>-->
       <entry>日付/時刻の差</entry>
      </row>

      <row>
       <entry><type>line</type><indexterm><primary>line</primary></indexterm><indexterm><primary sortas="SQLでーたがた">SQLデータ型</primary><secondary>line</secondary></indexterm></entry>
       <entry></entry>
       <!--<entry>infinite line in 2D plane</entry>-->
       <entry>直線 (線上の1点, 線上のもう1点)</entry>
      </row>

      <row>
       <entry><type>lseg</type><indexterm><primary>lseg</primary></indexterm><indexterm><primary sortas="SQLでーたがた">SQLデータ型</primary><secondary>lseg</secondary></indexterm></entry>
       <entry></entry>
       <!--<entry>line segment in 2D plane</entry>-->
       <entry>線分 (始点の座標, 終点の座標)</entry>
      </row>

      <row>
       <entry><type>macaddr</type><indexterm><primary>macaddr</primary></indexterm><indexterm><primary sortas="SQLでーたがた">SQLデータ型</primary><secondary>macaddr</secondary></indexterm></entry>
       <entry></entry>
       <!--<entry>MAC address</entry>-->
       <entry>MACアドレス</entry>
      </row>

      <row>
       <entry><type>money</type><indexterm><primary>money</primary></indexterm><indexterm><primary sortas="SQLでーたがた">SQLデータ型</primary><secondary>money</secondary></indexterm></entry>
       <entry></entry>
       <!--<entry>US-style currency</entry>-->
       <entry>米国通貨</entry>
      </row>

      <row>
       <entry><type>numeric(<replaceable>p</replaceable>, <replaceable>s</replaceable>)</type><indexterm><primary>numeric(p,s)</primary></indexterm><indexterm><primary sortas="SQLでーたがた">SQLデータ型</primary><secondary>numeric(p,s)</secondary></indexterm></entry>
       <entry><type>decimal(<replaceable>p</replaceable>, <replaceable>s</replaceable>)</type><indexterm><primary>decimal(p,s)</primary></indexterm><indexterm><primary sortas="SQLでーたがた">SQLデータ型</primary><secondary>decimal(p,s)</secondary></indexterm></entry>
       <!--<entry>exact numeric with selectable precision</entry>-->
       <entry>精度の高い整数と小数</entry>
      </row>

      <row>
       <entry><type>oid</type><indexterm><primary>oid</primary></indexterm><indexterm><primary sortas="SQLでーたがた">SQLデータ型</primary><secondary>oid</secondary></indexterm></entry>
       <entry></entry>
       <!--<entry>object identifier</entry>-->
       <entry>オブジェクト識別子</entry>
      </row>

      <row>
       <entry><type>path</type><indexterm><primary>path</primary></indexterm><indexterm><primary sortas="SQLでーたがた">SQLデータ型</primary><secondary>path</secondary></indexterm></entry>
       <entry></entry>
       <!--<entry>open and closed geometric path in 2D plane</entry>-->
       <entry>経路 (点1, 点2, ...)</entry>
      </row>

      <row>
       <entry><type>point</type><indexterm><primary>point</primary></indexterm><indexterm><primary sortas="SQLでーたがた">SQLデータ型</primary><secondary>point</secondary></indexterm></entry>
       <entry></entry>
       <!--<entry>geometric point in 2D plane</entry>-->
       <entry>点 (x, y)</entry>
      </row>

      <row>
       <entry><type>polygon</type><indexterm><primary>polygon</primary></indexterm><indexterm><primary sortas="SQLでーたがた">SQLデータ型</primary><secondary>polygon</secondary></indexterm></entry>
       <entry></entry>
       <!--<entry>closed geometric path in 2D plane</entry>-->
       <entry>多角形 (点1, 点2, ...)</entry>
      </row>

      <row>
       <entry><type>real</type><indexterm><primary>real</primary></indexterm><indexterm><primary sortas="SQLでーたがた">SQLデータ型</primary><secondary>real</secondary></indexterm></entry>
       <entry><type>float4</type><indexterm><primary>float4</primary></indexterm><indexterm><primary sortas="SQLでーたがた">SQLデータ型</primary><secondary>float4</secondary></indexterm></entry>
       <!--<entry>single precision floating-point number</entry>-->
       <entry>4バイト浮動小数点</entry>
      </row>

      <row>
       <entry><type>smallint</type><indexterm><primary>smallint</primary></indexterm><indexterm><primary sortas="SQLでーたがた">SQLデータ型</primary><secondary>smallint</secondary></indexterm></entry>
       <entry><type>int2</type><indexterm><primary>int2</primary></indexterm><indexterm><primary sortas="SQLでーたがた">SQLデータ型</primary><secondary>int2</secondary></indexterm></entry>
       <!--<entry>signed two-byte integer</entry>-->
       <entry>2バイト符号付整数</entry>
      </row>

      <row>
       <entry><type>serial</type><indexterm><primary>serial</primary></indexterm><indexterm><primary sortas="SQLでーたがた">SQLデータ型</primary><secondary>serial</secondary></indexterm></entry>
       <entry></entry>
       <!--<entry>autoincrementing four-byte integer</entry>-->
       <entry>4バイト自動増加整数</entry>
      </row>

      <row>
       <entry><type>text</type><indexterm><primary>text</primary></indexterm><indexterm><primary sortas="SQLでーたがた">SQLデータ型</primary><secondary>text</secondary></indexterm></entry>
       <entry></entry>
       <!--<entry>variable-length character string</entry>-->
       <entry>可変長テキスト（無制限）</entry>
      </row>

      <row>
       <entry><type>time [ without time zone ]</type><indexterm><primary>time [ without time zone ]</primary></indexterm><indexterm><primary sortas="SQLでーたがた">SQLデータ型</primary><secondary>time [ without time zone ]</secondary></indexterm></entry>
       <entry></entry>
       <!--<entry>time of day</entry>-->
       <entry>時刻（時分秒）タイムゾーンなし</entry>
      </row>

      <row>
       <entry><type>time with time zone</type><indexterm><primary>time with time zone</primary></indexterm><indexterm><primary sortas="SQLでーたがた">SQLデータ型</primary><secondary>time with time zone</secondary></indexterm></entry>
       <entry></entry>
       <!--<entry>time of day, including time zone</entry>-->
       <entry>時刻（時分秒）タイムゾーン付き</entry>
      </row>

      <row>
       <entry><type>timestamp [ with time zone ]</type><indexterm><primary>timestamp [ with time zone ]</primary></indexterm><indexterm><primary sortas="SQLでーたがた">SQLデータ型</primary><secondary>timestamp [ with time zone ]</secondary></indexterm></entry>
       <entry></entry>
       <!--<entry>date and time</entry>-->
       <entry>日付と時刻</entry>
      </row>
     </tbody>
    </tgroup>
   </table>

  <note>
   <!--<title>Compatibility</title>-->
   <title>互換性</title>
<indexterm><primary>SQL</primary><secondary sortas="ごかんせい">互換性</secondary></indexterm>
   <para>
    <!--The following types (or spellings thereof) are specified by SQL:
    <type>bit</type>, <type>bit varying</type>, <type>boolean</type>,
    <type>char</type>, <type>character</type>, <type>character
    varying</type>, <type>varchar</type>, <type>date</type>,
    <type>double precision</type>, <type>integer</type>,
    <type>interval</type>, <type>numeric</type>, <type>decimal</type>,
    <type>real</type>, <type>smallint</type>, <type>time</type>,
    <type>timestamp</type> (both with or without time zone).-->

    以下のデータ型は、SQLで明記されているものです。<type>bit</type>、<type>bit varying</type>、<type>boolean</type>、<type>char</type>、<type>character</type>、<type>charactervarying</type>、<type>varchar</type>、<type>date</type>、<type>double precision</type>、<type>integer</type>、<type>interval</type>、<type>numeric</type>、<type>decimal</type>、<type>real</type>、<type>smallint</type>、<type>time</type>、<type>timestamp</type>（タイムゾーン付き、なし両方）。

   </para>
  </note>

  <para>
   <!--Most of the input and output functions corresponding to the
   base types (e.g., integers and floating point numbers) do some
   error-checking.
   Some of the operators and functions (e.g.,
   addition and multiplication) do not perform run-time error-checking in the
   interests of improving execution speed.
   On some systems, for example, the numeric operators for some data types may
   silently underflow or overflow.-->

   整数や浮動小数点などの基本の型に対応している多くの入出力関数は、エラーチェックを行います。足し算や掛け算などのいくつかの演算子と関数に関しては、実行速度を早めるために実行されるたびにはエラーチェックは行いません。したがって、システム/データ型によっては、気がつかないうちにNumeric演算子のアンダーフローやオーバーフローを起こすかもしれません。
  </para>

  <para>
   <!--Some of the input and output functions are not invertible.  That is,
   the result of an output function may lose precision when compared to
   the original input.-->

   入出力関数には交換可能でないものがあります。つまり、出力関数の結果を入力された最初の入力と比較した場合、精度が下がる可能性があります。

  </para>

  <sect1 id="datatype-numeric">
   <!--<title>Numeric Types</title>-->
   <title>数値データ型</title>
<indexterm><primary sortas="すうちでーたがた">数値データ型</primary></indexterm>
<indexterm><primary>SQL</primary><secondary sortas="すうちでーたがた">数値データ型</secondary></indexterm>
   <para>
    <!--Numeric types consist of two-, four-, and eight-byte integers,
    four- and eight-byte floating point numbers and fixed-precision decimals.-->

    数値データ型は2/4/8バイトの整数、4/8バイトの浮動小数点、精度の高い整数と小数で構成されています。

   </para>

    <table tocentry="1">
     <title><!--Numeric Types-->Numericデータ型</title>
     <tgroup cols="4">
      <thead>
       <row>
	<!--<entry>Type Name</entry>
	<entry>Storage</entry>
	<entry>Description</entry>
	<entry>Range</entry>-->

	<entry>データ型名</entry>
	<entry>データベース上のバイト数</entry>
	<entry>説明</entry>
	<entry>値の範囲</entry>

       </row>
      </thead>

      <tbody>
       <row>
	<entry>smallint</entry>
	<entry><!--2 bytes-->2バイト</entry>
	<entry><!--Fixed-precision-->固定精度</entry>
	<entry><!-- -32768 to +32767-->-32,768から+32,767</entry>
       </row>
       <row>
	<entry>integer</entry>
	<entry><!--4 bytes-->4バイト</entry>
	<entry><!-- Usual choice for fixed-precision-->通常の固定精度</entry>
	<entry><!-- -2147483648 to +2147483647-->-2,147,483,648から+2,147,483,647</entry>
       </row>
       <row>
	<entry>bigint</entry>
	<entry><!--8 bytes-->8バイト</entry>
	<entry><!--Very large range fixed-precision-->固定精度</entry>
	<entry><!--about 18 decimal places-->約18桁</entry>
       </row>

       <row>
	<entry>decimal</entry>
	<entry><!--variable-->可変長</entry>
	<entry><!--User-specified precision-->ユーザー指定の精度</entry>
	<entry><!--no limit-->無制限</entry>
       </row>
       <row>
	<entry>numeric</entry>
	<entry><!--variable-->可変長</entry>
	<entry><!--User-specified precision-->ユーザー指定の精度</entry>
	<entry><!--no limit-->無制限</entry>
       </row>

       <row>
	<entry>real</entry>
	<entry><!--4 bytes-->4バイト</entry>
	<entry><!--Variable-precision-->可変精度</entry>
	<entry><!--6 decimal places-->6桁</entry>
       </row>
       <row>
	<entry>double precision</entry>
	<entry><!--8 bytes-->8バイト</entry>
	<entry><!--Variable-precision-->可変精度</entry>
	<entry><!--15 decimal places-->15桁</entry>
       </row>

       <row>
	<entry>serial</entry>
	<entry><!--4 bytes-->4バイト</entry>
	<entry><!--Identifier or cross-reference-->識別子またはクロスリファレンス</entry>
	<entry><!-- 0 to +2147483647 -->0から+2,147,483,647</entry>
       </row>
      </tbody>
     </tgroup>
    </table>

   <para>
    <!--The syntax of constants for the numeric types is described in
    <xref linkend="sql-syntax-constants">.  The numeric types have a
    full set of corresponding arithmetic operators and
    functions. Refer to <xref linkend="functions"> for more
    information.-->

    Numericデータ型の定数の構文は<xref linkend="sql-syntax-constants">で説明されています。Numericデータ型には多くの数値型で使える演算子と関数があります。詳細は<xref linkend="functions">を参照してください。

   </para>

   <para>
    <!--The <type>bigint</type> type may not be available on all platforms since
    it relies on compiler support for eight-byte integers.-->

    <type>bigint</type>はコンパイラが8バイトの数をサポートしている必要があるので、すべてのプラットフォームで使用できるとは限りません。

   </para>

   <sect2 id="datatype-serial">
    <!--<title>The Serial Type</title>-->
    <title>シリアル型</title>
<indexterm><primary sortas="しりあるがた">シリアル型</primary></indexterm>
<indexterm><primary>SQL</primary><secondary sortas="しりあるがた">シリアル型</secondary></indexterm>

    <para>
     <!--The <type>serial</type> type is a special-case type constructed by
     <productname>Postgres</productname> from other existing components.
     It is typically used to create unique identifiers for table entries.
     In the current implementation, specifying-->

     <type>serial</type>型は<productname>Postgres</productname>によって作成される特別な型です。テーブル内容に重複しない番号を作成する場合によく使用されます。たとえば以下のコマンドを考えてみましょう。</para>

<programlisting>
CREATE TABLE <replaceable class="parameter">tablename</replaceable> (<replaceable class="parameter">colname</replaceable> SERIAL);
</programlisting>

    <!-- is equivalent to specifying:-->
<para>現在の実装では、このコマンドは以下のコマンドと同等の意味です。</para>

<programlisting>
CREATE SEQUENCE <replaceable class="parameter">tablename</replaceable>_<replaceable class="parameter">colname</replaceable>_seq;
CREATE TABLE <replaceable class="parameter">tablename</replaceable>
    (<replaceable class="parameter">colname</replaceable> integer DEFAULT nextval('<replaceable class="parameter">tablename</replaceable>_<replaceable class="parameter">colname</replaceable>_seq'));
CREATE UNIQUE INDEX <replaceable class="parameter">tablename</replaceable>_<replaceable class="parameter">colname</replaceable>_key on <replaceable class="parameter">tablename</replaceable> (<replaceable class="parameter">colname</replaceable>);
</programlisting>

     <caution>
      <para>
       <!--The implicit sequence created for the <type>serial</type> type will
       <emphasis>not</emphasis> be automatically removed when the
       table is dropped.-->

       作成されたシーケンス型のためのシーケンスはテーブルが削除されたときに自動的には削除<emphasis>されません</emphasis>。

      </para>
     </caution>

     <!--Implicit sequences supporting the <type>serial</type> are
     not automatically dropped when a table containing a serial type
     is dropped. So, the following commands executed in order will likely fail:-->

<para>シーケンス型のためのシーケンスはシーケンス型を持っているテーブルが削除されたときに自動的に削除されません。したがって、下記のコマンドが実行されたときにはエラーになってしまう可能性があります。
</para>

<programlisting>
CREATE TABLE <replaceable class="parameter">tablename</replaceable> (<replaceable class="parameter">colname</replaceable> SERIAL);
DROP TABLE <replaceable class="parameter">tablename</replaceable>;
CREATE TABLE <replaceable class="parameter">tablename</replaceable> (<replaceable class="parameter">colname</replaceable> SERIAL);
</programlisting>

     <!--The sequence will remain in the database until explicitly dropped using
     <command>DROP SEQUENCE</command>.-->

<para><command>DROP SEQUENCE</command>コマンドを実行されるまでシーケンスの実体はデータベースに存在し続けます。

    </para>
   </sect2>
  </sect1>

  <sect1 id="datatype-money">
   <!--<title>Monetary Type</title>-->
   <title>通貨データ型</title>
<indexterm><primary sortas="つうかでーたがた">通貨データ型</primary></indexterm>
<indexterm><primary>SQL</primary><secondary sortas="つうかでーたがた">通貨データ型</secondary></indexterm>
   <note>
    <!-- <title>Deprecated</title> -->
    <title>改善のために仕様変更された部分</title>

    <para>
     <!--The <type>money</type> is now deprecated. Use
     <type>numeric</type> or <type>decimal</type> instead, in
     combination with the <function>to_char</function> function.  The
     money type may become a locale-aware layer over the
     <type>numeric</type> type in a future release.-->

     <type>money</type>型は改善のために仕様変更されています。<type>numeric</type>型、もしくは<type>decimal</type>型を<function>to_char</function>関数と組み合わせて利用してください。今後のリリースでは、通貨型は<type>numeric</type>型のロケールアウェアレイヤーとなるかもしれません。

    </para>
   </note>

   <para>
    <!--The <type>money</type> type stores U.S.-style currency with fixed
    decimal point representation.  If
    <productname>Postgres</productname> is compiled with locale
    support then the <type>money</type> type uses locale-specific
    output formatting.-->

    <type>money</type>型は米国式通貨を固定の小数点表記で格納するものです。もし<productname>Postgres</productname>がロケールサポートとコンパイルされたら<type>money</type>型はロケール特定の出力フォーマットを使用します。
    
   </para>

   <para>
    <!--Input is accepted in a variety of formats, including integer and
    floating point literals, as well as <quote>typical</quote>
    currency formatting, such as <literal>'$1,000.00'</literal>.
    Output is in the latter form.-->

    入力は整数や浮動小数、または<literal>'$1,000.00'</literal>などの<quote>特有</quote>な通貨フォーマットなど、あらゆるフォーマットが使用可能です。出力形式は後者のものとなります。

   </para>

    <table tocentry="1">
     <!--<title>Monetary Types</title>-->
     <title>通貨データ型</title>

     <tgroup cols="4">
      <thead>
       <row>
	<!--<entry>Type Name</entry>
	<entry>Storage</entry>
	<entry>Description</entry>
	<entry>Range</entry>-->

	<entry>型名</entry>
	<entry>データベース上のバイト数</entry>
	<entry>説明</entry>
	<entry>値の範囲</entry>
       </row>
      </thead>
      <tbody>
       <row>
	<entry>money</entry>
	<entry><!--4 bytes-->4バイト</entry>
	<entry><!--Fixed-precision-->固定精度</entry>
	<entry><!-- -21474836.48 to +21474836.47 -->-21474836.48から+21474836.47</entry>
       </row>
      </tbody>
     </tgroup>
    </table>
  </sect1>


  <sect1 id="datatype-character">
   <!--<title>Character Types</title>-->
   <title>文字データ型</title>
<indexterm><primary sortas="もじでーたがた">文字データ型</primary></indexterm>
<indexterm><primary>SQL</primary><secondary sortas="もじでーたがた">文字データ型</secondary></indexterm>
   <para>
    <!--<acronym>SQL</acronym> defines two primary character types:
    <type>character</type> and <type>character varying</type>. 
    <productname>Postgres</productname> supports these types, in
    addition to the more general <type>text</type> type, 
    which unlike <type>character varying</type>
    does not require an explicit declared upper
    limit on the size of the field.-->

    <acronym>SQL</acronym>では、<type>character</type>型と<type>character varying</type>型の2つの主要な文字データ型を定義しています。<productname>Postgres</productname>ではこれらの型をサポートしていますが、それらに加えてより一般的な<type>text</type>型もサポートしています。<type>text</type>型は<type>character varying</type>型と違って、フィールドサイズの明白な上限を必要としません。
     
   </para>

   <para>
    <!--Refer to <xref linkend="sql-syntax-strings"> for information about
    the syntax of string literals, and to <xref linkend="functions">
    for information about available operators and functions.-->

    文字列の構文に関しての詳細は<xref linkend="sql-syntax-strings">、使用可能な演算子と関数に関しての詳細は<xref linkend="functions">を参照してください。

   </para>

    <table tocentry="1">
     <!--<title>Character Types</title>-->
     <title>文字データ型</title>

     <tgroup cols="4">
      <thead>
       <row>
	<!--<entry>Type Name</entry>
	<entry>Storage</entry>
	<entry>Recommendation</entry>
	<entry>Description</entry>-->

	<entry>型名</entry>
	<entry>データベース上のバイト数</entry>
	<entry>注釈</entry>
	<entry>説明</entry>


       </row>
      </thead>
      <tbody>
       <row>
	<entry>character(<replaceable>n</replaceable>), char(<replaceable>n</replaceable>)</entry>
	<entry>(4+<replaceable>n</replaceable>) <!--bytes-->バイト</entry>
	<entry><acronym>SQL</acronym><!-- -compatible-->互換性あり</entry>
	<entry><!--Fixed-length blank padded-->固定長文字列（空白可）</entry>
       </row>
       <row>
	<entry>character varying(<replaceable>n</replaceable>), varchar(<replaceable>n</replaceable>)</entry>
	<entry>(4+<replaceable>n</replaceable>) <!--bytes-->バイト</entry>
	<entry><acronym>SQL</acronym><!-- -compatible-->互換性あり</entry>
	<entry><!--Variable-length with limit-->制限付の可変長文字列</entry>
       </row>
       <row>
	<entry>text</entry>
	<entry>(4+<replaceable>n</replaceable>) <!--bytes-->バイト</entry>
	<entry><!--Most flexible-->もっとも柔軟性がある</entry>
	<entry><!--Variable unlimited length-->制限無しの可変長文字列</entry>
       </row>
      </tbody>
     </tgroup>
    </table>

    <note>
     <para>
      <!--Although the type <type>text</type> is not SQL-compliant, many
      other RDBMS packages have it as well.-->

      <type>text</type>型はSQL互換性ではありませんが、多くのRDBMSパッケージでも採用されているものです。
     </para>
    </note>

   <para>
    <!--There are two other fixed-length character types in
    <productname>Postgres</productname>.  The <type>name</type> type
    exists <emphasis>only</emphasis> for storage of internal catalog
    names and is not intended for use by the general user.  Its length
    is currently defined as 32 bytes (31 characters plus terminator)
    but should be referenced using the macro
    <symbol>NAMEDATALEN</symbol>.  The length is set at compile time
    (and is therefore adjustable for special uses); the default
    maximum length may change in a future release.  The type
    <type>"char"</type> (note the quotes) is different from
    <type>char(1)</type> in that it only uses one byte of storage.  It
    is internally used in the system catalogs as a poor-man's
    enumeration type.-->

    この他にも、<productname>Postgres</productname>には2つの固定長文字列型があります。<type>name</type>型という、内部カタログ名の格納のために使用される型があり、この型は一般的な使用のためではありません。この長さは現在32バイト（31文字とターミネータ）と定義されていますが、マクロの<symbol>NAMEDATALEN</symbol>を使用して参照します。長さはコンパイル時に設定されますが、特別な場合には変更することができます。デフォルトの最大値は今後のリリースで変更があるかもしれません。<type>"char"</type>型（引用符に注意）は<type>char(1)</type>とは異なり、1バイトの格納スペースしか使用しません。この型も内部カタログでpoor-man's列挙型として使用されています。

   </para>

    <table tocentry="1">
     <!--<title>Specialty Character Type</title>-->
     <title>特別な文字データ型</title>

     <tgroup cols="3">
      <thead>
       <row>
	<!--<entry>Type Name</entry>
	<entry>Storage</entry>
	<entry>Description</entry>-->

	<entry>型名</entry>
	<entry>データベース上のバイト数</entry>
	<entry>説明</entry>

       </row>
      </thead>
      <tbody>
       <row>
	<entry>"char"</entry>
	<entry>1 <!--byte-->バイト</entry>
	<entry><!--Single character internal type-->1文字の内部用データ型</entry>
       </row>
       <row>
	<entry>name</entry>
	<entry>32 <!--bytes-->バイト</entry>
	<entry><!--Thirty-one character internal type-->31文字の内部用データ型</entry>
       </row>
      </tbody>
     </tgroup>
    </table>

  </sect1>

  <sect1 id="datatype-datetime">
   <!--<title>Date/Time Types</title>-->
   <title>日付データ型</title>
<indexterm><primary sortas="ひづけでーたがた">日付データ型</primary></indexterm>
<indexterm><primary>SQL</primary><secondary sortas="ひづけでーたがた">日付データ型</secondary></indexterm>
   <para>
    <!--<productname>Postgres</productname> supports the full set of
    <acronym>SQL</acronym> date and time types.-->

    <productname>Postgres</productname>は<acronym>SQL</acronym>の日にちと時間型をすべてサポートしています。

   </para>

    <table tocentry="1">
     <!--<title>Date/Time Types</title>-->
     <title>日付データ型</title>

     <tgroup cols="4">
      <thead>
       <row>
	<!--<entry>Type</entry>
        <entry>Description</entry>
	<entry>Storage</entry>
        <entry>Earliest</entry>
        <entry>Latest</entry>
        <entry>Resolution</entry>-->

	<entry>型</entry>
        <entry>説明</entry>
	<entry>データベース上のバイト数</entry>
        <entry>最古値</entry>
        <entry>最新値</entry>
        <entry>精度</entry>

       </row>
      </thead>
      <tbody>
       <row>
        <entry><type>timestamp</type></entry>
        <entry><!--both date and time-->年月日時分秒</entry>
        <entry>8 <!--bytes-->バイト</entry>
        <entry>4713 BC</entry>
        <entry>AD 1465001</entry>
        <entry><!--1 microsecond / 14 digits-->1マイクロ秒/14桁</entry>
       </row>
       <row>
        <entry><type>timestamp [ with time zone ]</type></entry>
        <entry><!--date and time with time zone-->タイムゾーン付き年月日時分秒</entry>
        <entry>8 <!--bytes-->バイト</entry>
        <entry>1903 AD</entry>
        <entry>2037 AD</entry>
        <entry><!--1 microsecond / 14 digits-->1マイクロ秒/14桁</entry>
       </row>
       <row>
        <entry><type>interval</type></entry>
        <entry><!--for time intervals-->日付/時刻の差</entry>
        <entry>12 <!--bytes-->バイト</entry>
        <entry>-178,000,000 <!--years-->年</entry>
        <entry>178,000,000 <!--years-->年</entry>
        <entry>1 <!--microsecond-->マイクロ秒</entry>
       </row>
       <row>
        <entry><type>date</type></entry>
        <entry><!--dates only-->日付のみ</entry>
        <entry>4 <!--bytes-->バイト</entry>
        <entry>4713 BC</entry>
        <entry>32767 AD</entry>
        <entry>1 <!--day-->日</entry>
       </row>
       <row>
        <entry><type>time [ without time zone ]</type></entry>
        <entry><!--times of day only-->タイムゾーンなし時刻</entry>
        <entry>8 <!--bytes-->バイト</entry>
        <entry>00:00:00.00</entry>
        <entry>23:59:59.99</entry>
        <entry>1 <!--microsecond-->マイクロ秒</entry>
       </row>
       <row>
        <entry><type>time with time zone</type></entry>
        <entry><!--times of day only-->タイムゾーン付き時刻</entry>
        <entry>12 <!--bytes-->バイト</entry>
        <entry>00:00:00.00+12</entry>
        <entry>23:59:59.99-12</entry>
        <entry>1 <!--microsecond-->マイクロ秒</entry>
       </row>
      </tbody>
     </tgroup>
    </table>

    <note>
     <para>
      <!--To ensure compatibility to earlier versions of <productname>Postgres</productname>
      we also continue to provide <type>datetime</type> (equivalent to <type>timestamp</type>) and
      <type>timespan</type> (equivalent to <type>interval</type>),
      however support for these is now restricted to having an
      implicit translation to <type>timestamp</type> and
      <type>interval</type>.
      The types <type>abstime</type>
      and <type>reltime</type> are lower precision types which are used internally.
      You are discouraged from using any of these types in new
      applications and are encouraged to move any old
      ones over when appropriate. Any or all of these internal types might disappear in a future release.-->

<productname>Postgres</productname>の前のバージョンとの互換性を確実に保つために、<type>datetime</type>型（<type>timestamp</type>と同じ）と<type>timespan</type>型（<type>interval</type>と同じ）も引き続き提供します。しかし、これらは現在<type>timestamp</type>型と<type>interval</type>型に移行しているので、制限されています。<type>abstime</type>型と<type>reltime</type>型は精度が低い型で、内部で使用されています。新しいアプリケーションにはこれらの型の使用は避け、また適当な時に古いものは削除してください。これらの型は今後のリリースで削除される可能性があります。

     </para>
    </note>


   <sect2 id="datatype-datetime-input">
    <title><!--Date/Time Input-->日付/時間入力</title>
<indexterm><primary sortas="ひづけじかんにゅうりょく">日付/時間入力</primary></indexterm>
<indexterm><primary>SQL</primary><secondary sortas="ひづけじかんにゅうりょく">日付/時間入力</secondary></indexterm>
    <para>
     <!--Date and time input is accepted in almost any reasonable format, including
     <acronym>ISO-8601</acronym>, <acronym>SQL</acronym>-compatible, 
     traditional <productname>Postgres</productname>, and others.
     The ordering of month and day in date input can be ambiguous, therefore a setting
     exists to specify how it should be interpreted in ambiguous cases. The command
     <literal>SET DateStyle TO 'US'</literal> or <literal>SET DateStyle TO 'NonEuropean'</literal>
     specifies the variant "month before day", the command
     <literal>SET DateStyle TO 'European'</literal> sets the variant
     "day before month". The <literal>ISO</literal> style
     is the default but this default can be changed at compile time or at run time.-->

     日付と時間は<acronym>ISO-8601</acronym>や互換性のある<acronym>SQL</acronym>、伝来の<productname>Postgres</productname>など多くのフォーマットで入力可能です。日付の月と日にちの順序は決められたものがないので、どのように解釈されるべきなのかを設定しなければいけません。<literal>SET DateStyle TO 'US'</literal>や<literal>SET DateStyle TO 'NonEuropean'</literal>コマンドはさまざまな"月のあとに日にち形式"を設定し、また<literal>SET DateStyle TO 'European'</literal>コマンドはさまざまな"日にちのあとに月形式"に設定します。<literal>ISO</literal>形式がデフォルトとなっていますが、コンパイル時、または実行中に変えることが可能です。
    </para>

    <para>
     <!--See <xref linkend="datetime-appendix">
     for the exact parsing rules of date/time input and for the recognized time zones.-->

     日時の正確な入力方法と使用可能なタイムゾーンについては<xref linkend="datetime-appendix">を参照してください。
    </para>

    <para>
     <!--Remember that any date or time input needs to be enclosed into
     single quotes, like text strings.  Refer to <xref
     linkend="sql-syntax-constants-generic"> for more information.
     SQL requires the following syntax-->

     文字列のように、日付や時間は一重引用符で囲む必要があります（詳細は<xref linkend="sql-syntax-constants-generic">を参照）。SQLには下記の構文が必要ですが、<productname>Postgres</productname>はもっと柔軟です。</para>

<synopsis>
<replaceable>type</replaceable> '<replaceable>value</replaceable>'
</synopsis>

     <!--but <productname>Postgres</productname> is more flexible.-->

    <sect3>
    <!--<title>date</title>-->
    <title>日付</title>

    <para>
     <!--The following are possible inputs for the <type>date</type> type.-->
     <type>date</type>型では下記の入力が可能です。</para>

     <table tocentry="1">
      <!--<title>Date Input</title>-->
      <title>日付入力</title>

      <tgroup cols="2">
       <thead>
	<row>
	<!--<entry>Example</entry>
	 <entry>Description</entry>-->

	<entry>例</entry>
	<entry>説明</entry>

	</row>
       </thead>
       <tbody>
	<row>
	<entry>January 8, 1999</entry>
         <entry><!--Unambiguous-->変更不可</entry>
	</row>
	<row>
	<entry>1999-01-08</entry>
	<entry><!--ISO-8601 format, preferred-->ISO-8601のフォーマット。推奨。</entry>
	</row>
	<row>
	<entry>1/8/1999</entry>
	<entry><!--US; read as August 1 in European mode-->US形式。ヨーロッパモードでは8月1日と認識されます。</entry>
	</row>
	<row>
	<entry>8/1/1999</entry>
	<entry><!--European; read as August 1 in US mode-->ヨーロッパ形式。USモードでは8月1日と認識されます。</entry>
	</row>
	<row>
	<entry>1/18/1999</entry>
	<entry><!--US; read as January 18 in any mode-->米国形式。このケースではどのモードでも1月18日と認識されます。</entry>
	</row>
	<row>
	<entry>19990108</entry>
	<entry><!--ISO-8601 year, month, day-->ISO-8601の年、月、日付</entry>
	</row>
	<row>
	<entry>990108</entry>
	<entry><!--ISO-8601 year, month, day-->ISO-8601の年、月、日付</entry>
	</row>
	<row>
	<entry>1999.008</entry>
	<entry><!--Year and day of year-->年とその日までの累計</entry>
	</row>
	<row>
	<entry>99008</entry>
	<entry><!--Year and day of year-->年とその日までの累計</entry>
	</row>
	<row>
	<entry>January 8, 99 BC</entry>
	<entry><!--Year 99 before the Common Era-->西暦紀元の99年前</entry>
	</row>
       </tbody>
      </tgroup>
     </table>

     <table tocentry="1">
      <!--<title>Month Abbreviations</title>-->
      <title>月の短縮形式</title>
      <tgroup cols="2">
       <thead>
	<row>
	<entry><!--Month-->月</entry>
	<entry><!--Abbreviations-->短縮形式</entry>
	</row>
       </thead>
       <tbody>
	<row>
	<entry><!--January-->1月</entry>
	<entry>Jan</entry>
	</row>
	<row>
	<entry><!--February-->2月</entry>
	<entry>Feb</entry>
	</row>
	<row>
	<entry><!--March-->3月</entry>
	<entry>Mar</entry>
	</row>
	<row>
	<entry><!--April-->4月</entry>
	<entry>Apr</entry>
	</row>
	<row>
	<entry><!--June-->6月</entry>
	<entry>Jun</entry>
	</row>
	<row>
	<entry><!--July-->7月</entry>
	<entry>Jul</entry>
	</row>
	<row>
	<entry><!--August-->8月</entry>
	<entry>Aug</entry>
	</row>
	<row>
	<entry><!--September-->9月</entry>
	<entry>Sep, Sept</entry>
	</row>
	<row>
	<entry><!--October-->10月</entry>
	<entry>Oct</entry>
	</row>
	<row>
	<entry><!--November-->11月</entry>
	<entry>Nov</entry>
	</row>
	<row>
	<entry><!--December-->12月</entry>
	<entry>Dec</entry>
	</row>
       </tbody>
      </tgroup>
     </table>

     <note>
      <para>
       <!--The month <literal>May</literal> has no explicit abbreviation, for obvious reasons.-->
       5月には略する必要性がないので、短縮形式がありません。
 
      </para>
     </note>

     <table tocentry="1">
      <!--<title>Day of the Week Abbreviations</title>-->
      <title>曜日の短縮形式</title>
      <tgroup cols="2">
       <thead>
	<row>
	<entry><!--Day-->曜日</entry>
	<entry><!--Abbreviation-->短縮形式</entry>
	</row>
       </thead>
       <tbody>
	<row>
	<entry><!--Sunday-->日曜日</entry>
	<entry>Sun</entry>
	</row>
	<row>
	<entry><!--Monday-->月曜日</entry>
	<entry>Mon</entry>
	</row>
	<row>
	<entry><!--Tuesday-->火曜日</entry>
	<entry>Tue、Tues</entry>
	</row>
	<row>
	<entry><!--Wednesday-->水曜日</entry>
	<entry>Wed、Weds</entry>
	</row>
	<row>
	<entry><!--Thursday-->木曜日</entry>
	<entry>Thu、Thur、Thurs</entry>
	</row>
	<row>
	<entry><!--Friday-->金曜日</entry>
	<entry>Fri</entry>
	</row>
	<row>
	<entry><!--Saturday-->土曜日</entry>
	<entry>Sat</entry>
	</row>
       </tbody>
      </tgroup>
     </table>
    </sect3>

    <sect3>
     <!--<title>time [ without time zone ]</title>-->
     <title>タイムゾーンなし時刻</title>

     <para>
      <!--Per SQL99, this type can be referenced as <type>time</type> and
      as <type>time without time zone</type>.-->

      SQL99では、この型は<type>time</type>と<type>time without time zone</type>の両方を使用できます。

     </para>

     <para>
      <!--The following are valid <type>time</type> inputs.-->
      下記が<type>time</type>型の入力として可能です。</para>

      <table tocentry="1">
       <!-- <title>Time Input</title> -->
       <title>時刻入力</title>

       <tgroup cols="2">
	<thead>
	<row>
	  <entry><!--Example-->例</entry>
	  <entry><!--Description-->説明</entry>
	</row>
	</thead>
	<tbody>
	<row>
	  <entry>04:05:06.789</entry>
	  <entry>ISO-8601</entry>
	</row>
	<row>
	  <entry>04:05:06</entry>
	  <entry>ISO-8601</entry>
	</row>
	<row>
	  <entry>04:05</entry>
	  <entry>ISO-8601</entry>
	</row>
	<row>
	  <entry>040506</entry>
	  <entry>ISO-8601</entry>
	</row>
	<row>
	  <entry>04:05 AM</entry>
	  <entry><!--Same as 04:05; AM does not affect value-->04:05と同義です。AMは影響がありません。</entry>
	</row>
	<row>
	  <entry>04:05 PM</entry>
	  <entry><!--Same as 16:05; input hour must be <= 12-->16:05と同義です。入力「時」は12以下でなければいけません。</entry>
	</row>
	<row>
	  <entry>z</entry>
	  <entry><!--Same as 00:00:00-->00:00:00と同義です。</entry>
	</row>
	<row>
	  <entry>zulu</entry>
	  <entry><!--Same as 00:00:00-->00:00:00と同義です。</entry>
	</row>
	<row>
	  <entry>allballs</entry>
	  <entry><!--Same as 00:00:00-->00:00:00と同義です。</entry>
	</row>
	</tbody>
       </tgroup>
      </table>
    </sect3>

    <sect3>
     <!-- <title>time with time zone</title> -->
     <title>タイムゾーンつき時刻</title>

     <para>
      <!--This type is defined by SQL92, but the definition exhibits
      fundamental deficiencies that render the type nearly useless. In
      most cases, a combination of <type>date</type>,
      <type>time</type>, and <type>timestamp</type>
      should provide a complete range of date/time functionality
      required by any application.-->

      この型はSQL92で定義されていますが、その定義は根本的な部分の欠陥があり、この型をほとんど無益なものとしています。ほとんどの場合、<type>date</type>型、<type>time</type>型、<type>timestamp</type>型との組み合わせで、あらゆるアプリケーションで必要とされる日付/時刻の機能を提供できるはずです。

     </para>

     <para>
      <!--<type>time with time zone</type> accepts all input also legal
      for the <type>time</type> type, appended with a legal time zone,
      as follows:-->

      <type>time with time zone</type>型では<type>time</type>型で使用可能な入力方法はすべて使用でき、適切なタイムゾーンを付けます。</para>

      <table tocentry="1">
       <!--<title>Time With Time Zone Input</title>-->
       <title>タイムゾーンつき時刻入力</title>


       <tgroup cols="2">
       <thead>
	<row>
	<entry><!--Example-->例</entry>
	<entry><!--Description-->説明</entry>
	</row>
       </thead>
       <tbody>
	<row>
	<entry>04:05:06.789-8</entry>
	<entry>ISO-8601</entry>
	</row>
	<row>
	<entry>04:05:06-08:00</entry>
	<entry>ISO-8601</entry>
	</row>
	<row>
	<entry>04:05-08:00</entry>
	<entry>ISO-8601</entry>
	</row>
	<row>
	<entry>040506-08</entry>
	<entry>ISO-8601</entry>
	</row>
       </tbody>
      </tgroup>
     </table>

     <para>
      <!--Refer to <xref linkend="datatype-timezone-table"> for
      more examples of time zones.-->

      タイムゾーンに関するほかの例は<xref linkend="datatype-timezone-table">を参照してください。

     </para>
    </sect3>

    <sect3>
    <!--<title>timestamp</title>-->
    <title>タイムスタンプ</title>

     <para>
      <!--Valid input for the <type>timestamp</type> type consists of a concatenation
      of a date and a time, followed by an optional <literal>AD</literal> or
      <literal>BC</literal>, followed by an optional time zone. (See below.)
      Thus-->

       <type>timestamp</type>型の有効な入力形式は、日付と時刻の連結で行われ、<literal>AD</literal>や<literal>BC</literal>、タイムゾーンがオプションで付けられます（下記を参照）。したがって、以下の表現は有効な<type>timestamp</type>型の値で、<acronym>ISO</acronym>と互換性があります。</para>


<programlisting>
1999-01-08 04:05:06 -8:00
</programlisting>

      <!--is a valid <type>timestamp</type> value that is <acronym>ISO</acronym>-compliant.
      In addition, the wide-spread format-->

<para>また、広く使用されている以下のフォーマットもサポートされています。</para>

<programlisting>
January 8 04:05:06 1999 PST
</programlisting>

      <!--is supported.-->



      <table tocentry="1" id="datatype-timezone-table">
       <!--<title>Time Zone Input</title>-->
       <title>タイムゾーン入力</title>

       <tgroup cols="2">
	<thead>
	<row>
	  <entry><!--Time Zone-->タイムゾーン</entry>
	  <entry><!--Description-->説明</entry>
	</row>
	</thead>
	<tbody>
	<row>
	  <entry>PST</entry>
	  <entry><!--Pacific Standard Time-->太平洋標準時（PST）</entry>
	</row>
	<row>
	  <entry>-8:00</entry>
	  <entry><!--ISO-8601 offset for PST-->PSTのオフセットを表すISO-8601</entry>
	</row>
	<row>
	  <entry>-800</entry>
	  <entry><!--ISO-8601 offset for PST-->PSTのオフセットを表すISO-8601</entry>
	</row>
	<row>
	  <entry>-8</entry>
	  <entry><!--ISO-8601 offset for PST-->PSTのオフセットを表すISO-8601</entry>
	</row>
	</tbody>
       </tgroup>
      </table>
    </sect3>

    <sect3>
     <!--<title>interval</title>-->
     <title>日付/時刻の差</title>

      <para>
       <!--<type>interval</type>s can be specified with the following syntax:-->
       <type>interval</type>型は、下記の構文で特定することが可能です。</para>

<programlisting>
  Quantity Unit [Quantity Unit...] [Direction]
@ Quantity Unit [Direction]
</programlisting>

      <!--where: <literal>Quantity</literal> is ..., <literal>-1</literal>,
      <literal>0</literal>, <literal>1</literal>, <literal>2</literal>, ...;
      <literal>Unit</literal> is <literal>second</literal>,
      <literal>minute</literal>, <literal>hour</literal>, <literal>day</literal>,
      <literal>week</literal>, <literal>month</literal>, <literal>year</literal>,
      <literal>decade</literal>, <literal>century</literal>, <literal>millennium</literal>,
      or abbreviations or plurals of these units;
      <literal>Direction</literal> can be <literal>ago</literal> or
      empty.-->

<para><literal>Quantity（時間量）</literal>は<literal>-1</literal>、<literal>0</literal>、<literal>1</literal>、<literal>2</literal>、...で、<literal>Unit（単位）</literal>は<literal>second（秒）</literal>、<literal>minute（分）</literal>、<literal>hour（時）</literal>、<literal>day（日）</literal>、<literal>week（週）</literal>、<literal>month（月）</literal>、<literal>year（年）</literal>、<literal>decade（10年間）</literal>、<literal>century（1世紀）</literal>、<literal>millennium（千年期）</literal>で、これら単位の短縮形や複数形です。<literal>Direction（方向）</literal>は、<literal>ago</literal>、または空となります。

     </para>
    </sect3>

    <sect3>
     <!--<title>Special values</title>-->
     <title>特別な値</title>

     <para>
      <!--The following <acronym>SQL</acronym>-compatible functions can be used as date or time
      input for the corresponding data type: <literal>CURRENT_DATE</literal>,
      <literal>CURRENT_TIME</literal>, <literal>CURRENT_TIMESTAMP</literal>.-->

      <acronym>SQL</acronym>と互換性のある<literal>CURRENT_DATE</literal>、<literal>CURRENT_TIME</literal>、<literal>CURRENT_TIMESTAMP</literal>関数は対応するデータ型の日付/時間入力として使用することができます。

     </para>
     <para>
      <!--<productname>Postgres</productname> also supports several special constants for
      convenience.-->

      <productname>Postgres</productname>では、便宜をはかるために次に示すような、特殊な定数が設けてあります。</para>

     <table tocentry="1">
      <!--<title>Special Date/Time Constants</title>-->
      <title>特殊な日付/時刻定数</title>
      <tgroup cols="2">
       <thead>
	<row>
	<entry><!--Constant-->定数</entry>
	<entry><!--Description-->説明</entry>
	</row>
       </thead>
       <tbody>
	<row>
	<entry>current</entry>
	<entry><!--Current transaction time, deferred-->トランザクションが行われた時点（後述）</entry>
	</row>
	<row>
	<entry>epoch</entry>
	<entry>1970-01-01 00:00:00+00 <!--(Unix system time zero)-->Unix経時基準時刻</entry>
	</row>
	<row>
	<entry>infinity</entry>
	<entry><!--Later than other valid times-->有効な時間よりも大きい日付</entry>
	</row>
	<row>
	<entry>-infinity</entry>
	<entry><!--Earlier than other valid times-->有効な時間よりも小さい日付</entry>
	</row>
	<row>
	<entry>invalid</entry>
	<entry><!--Illegal entry-->無効な入力</entry>
	</row>
	<row>
	<entry>now</entry>
	<entry><!--Current transaction time-->トランザクションが行われた時点（後述）</entry>
	</row>
	<row>
	<entry>today</entry>
	<entry><!--Midnight today-->本日</entry>
	</row>
	<row>
	<entry>tomorrow</entry>
	<entry><!--Midnight tomorrow-->明日</entry>
        </row>
	<row>
	<entry>yesterday</entry>
	<entry><!--Midnight yesterday-->昨日</entry>
	</row>
       </tbody>
      </tgroup>
     </table>

     <!--<literal>'now'</literal> is resolved when the value is inserted, <literal>'current'</literal>
     is resolved every time the value is retrieved. So you probably want to use <literal>'now'</literal>
     in most applications. (Of course you <emphasis>really</emphasis> want to use
     <literal>CURRENT_TIMESTAMP</literal>, which is equivalent to <literal>'now'</literal>.)-->

<para><literal>now</literal>は、値が挿入されたらその後変更されません。<literal>current</literal>は、呼び出されるたびに値が変わります。したがって、ほとんどのアプリケーションでは<literal>now</literal>を使用することになるでしょう（そのような場合は<literal>now</literal>と同等の<literal>CURRENT_TIMESTAMP</literal>を使用する場合が多いでしょうけれども）。

    </para>
    </sect3>

   </sect2>


   <sect2 id="datatype-datetime-output">
    <!--<title>Date/Time Output</title>-->
    <title>日付/時刻出力</title>

    <para>
     <!--Output formats can be set to one of the four styles
     ISO-8601, <acronym>SQL</acronym> (Ingres), traditional
     Postgres, and German, using the <command>SET DateStyle</command>.
     The default is the <acronym>ISO</acronym> format.-->

     出力形式フォーマットは、<command>SET DateStyle</command>コマンドを使用してISO-8601、<acronym>SQL</acronym>（Ingres）、伝来のPostgres、Germanのいずれかに設定することができます。デフォルトは<acronym>ISO</acronym>フォーマットとなっています。</para>

     <table tocentry="1">
      <!--<title>Date/Time Output Styles</title>-->
      <title>日付/時間出力形式</title>

      <tgroup cols="3">
       <thead>
	<row>
	<entry><!--Style Specification-->出力形式名</entry>
	<entry><!--Description-->説明</entry>
	<entry><!--Example-->例</entry>
	</row>
       </thead>
       <tbody>
	<row>
	<entry>'ISO'</entry>
	<entry><!--ISO-8601 standard-->ISO-8601形式</entry>
	<entry>1997-12-17 07:37:16-08</entry>
	</row>
	<row>
	<entry>'SQL'</entry>
	<entry><!--Traditional style-->伝来的形式</entry>
	<entry>12/17/1997 07:37:16.00 PST</entry>
	</row>
	<row>
	<entry>'Postgres'</entry>
	<entry><!--Original style-->オリジナル形式</entry>
	<entry>Wed Dec 17 07:37:16 1997 PST</entry>
	</row>
	<row>
	<entry>'German'</entry>
	<entry><!--Regional style-->地域的形式</entry>
	<entry>17.12.1997 07:37:16.00 PST</entry>
	</row>
       </tbody>
      </tgroup>
     </table>

    <para>
     <!--The output of the <type>date</type> and <type>time</type> styles is of course
     only the date or time part in accordance with the above examples.-->

><type>date</type>型と<type>time</type>型の出力形式はいうまでもなく、上記の例と一致している日付と時間の部分です。

    </para>

    <para>
     <!--The <acronym>SQL</acronym> style has European and non-European (US) variants, 
     which determines whether month follows day or vice versa. (See also above
     at Date/Time Input, how this setting affects interpretation of input values.)-->

     <acronym>SQL</acronym>形式にはヨーロッパ式と非ヨーロッパ式（US）があり、月の後に日なのか、それともその逆なのかの判断をします（この設定がどのように値の評価に影響するかの詳細は、上記の日付/時間入力の説明を参照してください）。</para>

     <table tocentry="1">
      <!--<title>Date Order Conventions</title>-->
      <title>日付順序の慣習</title>

      <tgroup cols="3">
       <thead>
	<row>
	<entry><!--Style Specification-->形式名</entry>
	<entry><!--Description-->説明</entry>
	<entry><!--Example-->例</entry>
	</row>
       </thead>
       <tbody>
	<row>
	<entry>European</entry>
	<!--<entry><replaceable>day</replaceable>/<replaceable>month</replaceable>/<replaceable>year</replaceable></entry>-->
	<entry><replaceable>日</replaceable>/<replaceable>月</replaceable>/<replaceable>年</replaceable></entry>
	<entry>17/12/1997 15:37:16.00 MET</entry>
	</row>
	<row>
	<entry>US</entry>
	<!--<entry><replaceable>month</replaceable>/<replaceable>day</replaceable>/<replaceable>year</replaceable></entry>-->
	<entry><replaceable>月</replaceable>/<replaceable>日</replaceable>/<replaceable>年</replaceable></entry>
	<entry>12/17/1997 07:37:16.00 PST</entry>
	</row>
       </tbody>
      </tgroup>
     </table>

    <para>
    <!--<type>interval</type> output looks like the input format, except that units like
    <literal>week</literal> or <literal>century</literal> are converted to years and days.
    In ISO mode the output looks like-->

    <type>interval</type>型の出力形式は入力フォーマットと似ていますが、<literal>週</literal>や<literal>世紀</literal>は年と日に変換されます。ISOモードでは、出力は下記のようになります。</para>

<programlisting>
[ Quantity Units [ ... ] ] [ Days ] Hours:Minutes [ ago ]
</programlisting>

    <para>
     <!--There are several ways to affect the appearance of date/time types:-->

     日付/時間データ型の出力形式選択としていくつかの方法があります。</para>


     <itemizedlist spacing="compact" mark="bullet">
      <listitem>
       <para>
	<!--The <envar>PGDATESTYLE</envar> environment variable used by the backend directly 
	on postmaster start-up.-->

        postmasterを起動させる際に、バックエンドで使用される環境変数<envar>PGDATESTYLE</envar>に設定する。

       </para>
      </listitem>
      <listitem>
       <para>
	<!--The <envar>PGDATESTYLE</envar> environment variable used by the frontend libpq 
	on session start-up.-->

        環境変数<envar>PGDATESTYLE</envar>をフロントエンドlibpq起動時に使用する。

       </para>
      </listitem>
      <listitem>
       <para>
	<!--<command>SET DATESTYLE</command> <acronym>SQL</acronym> command.-->

        <acronym>SQL</acronym>の<command>SET DATESTYLE</command>コマンドを使用する。

       </para>
      </listitem>
     </itemizedlist>

   </sect2>

   <sect2 id="datatype-timezones">
    <!--<title>Time Zones</title>-->
    <title>タイムゾーン</title>
<indexterm><primary sortas="たいむぞーん">タイムゾーン</primary></indexterm>
<indexterm><primary>SQL</primary><secondary sortas="たいむぞーん">タイムゾーン</secondary></indexterm>
    <para>
     <!--<productname>Postgres</productname> endeavors to be compatible with
     <acronym>SQL92</acronym> definitions for typical usage.
     However, the <acronym>SQL92</acronym> standard has an odd mix of date and
     time types and capabilities. Two obvious problems are:-->

     <productname>Postgres</productname>は、汎用的に使用できるように<acronym>SQL92</acronym>への準拠に対して最大限の努力をしています。しかし、<acronym>SQL92</acronym>標準には、一時凌ぎで混乱している日付/時刻型とその仕様があります。2つの明らかな問題点を以下に示します。</para>


     <itemizedlist>
      <listitem>
       <para>
	<!--Although the <type>date</type> type 
	does not have an associated time zone, the
	<type>time</type> type can or does.
	Time zones in the real world can have no meaning unless 
	associated with a date as well as a time
	since the offset may vary through the year with daylight savings
	time boundaries.-->

        <type>date</type>型には関連するタイムゾーンはありませんが、<type>time</type>型にはあります。現実の世界において、タイムゾーンはオフセットが夏時間の切り替えにより1年を通じてが変化することから、時刻と同様に日付もそれに結び付けられていないと意味がありません。
       </para>
      </listitem>

      <listitem>
       <para>
	<!--The default time zone is specified as a constant integer offset 
	from GMT/UTC. It is not possible to adapt to daylight savings
	time when doing date/time arithmetic across
	<acronym>DST</acronym> boundaries.-->

        デフォルトのタイムゾーンはGMT/UTCからのオフセット整数定数として指定されています。<acronym>DST</acronym>線をこえる日付/時間の計算を行う際にサマータイムを使用することはできません。
       </para>
      </listitem>

     </itemizedlist>

    <para>
     <!--To address these difficulties, we recommend using date/time
     types that contain both date and time when using time zones. We
     recommend <emphasis>not</emphasis> using the SQL92 type TIME
     WITH TIME ZONE (though it is supported by
     <productname>Postgres</productname> for legacy applications and
     for compatibility with other RDBMS implementations).
     <productname>Postgres</productname> 
     assumes local time for any type containing only
     date or time. Further, time zone support is derived from 
     the underlying operating system time zone capabilities, 
     and hence can handle daylight savings time 
     and other expected behavior.-->

     このような問題を解決するためには、タイムゾーンを使用する際、日付と時間の両方を保持している日付/時間型を使うべきでしょう。他のRDBMSの実装との互換性を持たせるためと、過去のアプリケーションのために<productname>Postgres</productname>でSQL92のTIME WITH TIME ZONEをサポートしていますが、利用は勧められません。<productname>Postgres</productname>は、日付または時間だけを保持しているあらゆる型の現地時間を推測します。また、タイムゾーンのサポートはOSのタイムゾーンの機能を使用しているので、サマータイムとその他の機能を利用できます。

    </para>

    <para>
     <!--<productname>Postgres</productname> obtains time zone support 
     from the underlying operating system for dates between 1902 and
     2038 (near the typical date limits for Unix-style
     systems). Outside of this range, all dates are assumed to be
     specified and used in Universal Coordinated Time (UTC).-->

     <productname>Postgres</productname>は、（UNIXライクなシステムの典型的な日付の限界である）1902年から2038年までの間は、OS環境下のタイムゾーンサポートを受けますが、この範囲以外のすべての日付は、協定世界時間（UTC：Universal Coordinated Time）が指定されたものと仮定し、使用されます。
    </para>

    <para>
     <!--All dates and times are stored internally in UTC,
     traditionally known as Greenwich Mean Time (GMT). 
     Times are converted to local time on the database server before being
     sent to the client frontend, hence by default are in the server
     time zone.-->

     内部的にはすべての日付と時刻は、グリニッジ標準時（GMT）としても知られてるUTCで保存されています。時刻はクライアントフロントエンドに送られる前にデータベースサーバーの上でローカル時刻に変換されるため、サーバーでのタイムゾーンがデフォルトになります。
    </para>

    <para>
     <!--There are several ways to affect the time zone behavior:-->

     タイムゾーンの動作に影響を与える方法はいくつかあります。</para>


     <itemizedlist spacing="compact" mark="bullet">
      <listitem>
       <para>
	<!--The TZ environment variable is used by the backend directly
	on postmaster start-up as the default time zone.-->

        環境変数TZをpostmaster起動時に与え、タイムゾーンのデフォルトとする。 

       </para>
      </listitem>
      <listitem>
       <para>
	<!--The PGTZ environment variable set at the client used by libpq 
	to send time zone information to the backend upon connection.-->

        コネクション確立時に、環境変数PGTZをクライアント側からlibpqを使用して、バックエンドにタイムゾーンの情報を与える。 

       </para>
      </listitem>
      <listitem>
       <para>
	<!--The <acronym>SQL</acronym> command <command>SET TIME ZONE</command>
	sets the time zone for the session.-->

        <acronym>SQL</acronym>の<command>SET TIME ZONE</command>コマンドで、セッション中のタイムゾーンを設定する。 

       </para>
      </listitem>
      <listitem>
       <para>
	<!--The <acronym>SQL92</acronym> qualifier on
<programlisting>
<replaceable>timestamp</replaceable> AT TIME ZONE '<replaceable>zone</replaceable>'
</programlisting>
	where <replaceable>zone</replaceable> can be specified as a
	text time zone (e.g. <literal>'PST'</literal>) or as an
	interval (e.g. <literal>INTERVAL '-08:00'</literal>).-->

        以下に示すように、<acronym>SQL92</acronym>の<command>AT TIME ZONE</command>で、<replaceable>zone</replaceable>にテキストでタイムゾーンや（たとえば<literal>'PST'</literal>）インターバル（たとえば<literal>INTERVAL '-08:00'</literal>）を指定することができます。 </para>

<programlisting>
<replaceable>timestamp</replaceable> AT TIME ZONE '<replaceable>zone</replaceable>'
</programlisting>


      </listitem>
     </itemizedlist>


     <note>
      <para>
       <!--If an invalid time zone is specified,
       the time zone becomes GMT (on most systems anyway).-->

      無効なタイムゾーンが指定された場合、ほとんどのシステムではタイムゾーンはGMTになります。

      </para>
     </note>

     <note>
      <para>
       <!--If the compiler option USE_AUSTRALIAN_RULES is set 
       then <literal>EST</literal> refers to Australia Eastern Standard Time,
       which has an offset of +10:00 hours from UTC.-->

       コンパイラのオプションにUSE_AUSTRALIAN_RULESをセットした場合、ESTというのは、UTCに対し+10:00時間の時差を持ったオーストラリア東部標準時（Australia Eastern Std Time）のことです。 

      </para>
     </note>

   </sect2>

   <sect2 id="datatype-datetime-internals">
    <title><!--Internals-->内部</title>

    <para>
     <!--<productname>Postgres</productname> uses Julian dates
     for all date/time calculations. They have the nice property of correctly
     predicting/calculating any date more recent than 4713BC
     to far into the future, using the assumption that the length of the
     year is 365.2425 days.-->

     <productname>Postgres</productname>は、すべての日付と時刻の計算にユリウス暦を使っています。これは、紀元前4,713年から未来までのすべての日付を、1年は365.2425日であると仮定し正確な予測や計算をするという優れた特性を持っています。
    </para>

    <para>
     <!--Date conventions before the 19th century make for interesting reading,
     but are not consistent enough to warrant coding into a date/time handler.-->

     19世紀以前の日付規則はおもしろい読み物にはなりますが、日付/時刻ハンドラを正しくコーディングするためにはさほど役に立つものではありません。

    </para>
   </sect2>

  </sect1>

  <sect1 id="datatype-boolean">
   <!-- <title>Boolean Type</title> -->
   <title>ブーリアン型</title>
<indexterm><primary sortas="ぶーりあんがた">ブーリアン型</primary></indexterm>
<indexterm><primary>SQL</primary><secondary sortas="ぶーりあんがた">ブーリアン型</secondary></indexterm>
<indexterm><primary sortas="ろんりがた">論理型</primary></indexterm>
<indexterm><primary>SQL</primary><secondary sortas="ろんりがた">論理型</secondary></indexterm>
   <para>
    <!--<productname>Postgres</productname> provides the
    <acronym>SQL99</acronym> type <type>boolean</type>.
    <type>boolean</type> can have one of only two states:
    <quote>true</quote> or <quote>false</quote>.  A third state,
    <quote>unknown</quote>, is represented by the
    <acronym>SQL</acronym> NULL state. -->

    <productname>Postgres</productname>は、<acronym>SQL99</acronym>の<type>boolean</type>型をサポートしています。<type>boolean</type>型は<quote>true（真）</quote>または<quote>false（偽）</quote>という2つのステータスしか持つことができません。3番目の状態である<quote>unknown（不明）</quote>は、<acronym>SQL</acronym>のNULLで表されます。
   </para>

   <para>
    <!-- Valid literal values for the <quote>true</quote> state are: -->

    <quote>true（真）</quote>の有効な入力値は以下のものです。</para>


    <simplelist>
     <member><literal>TRUE</literal></member>
     <member><literal>'t'</literal></member>
     <member><literal>'true'</literal></member>
     <member><literal>'y'</literal></member>
     <member><literal>'yes'</literal></member>
     <member><literal>'1'</literal></member>
    </simplelist>
    <!--For the <quote>false</quote> state, the following values can be used:-->
<para>
<quote>false（偽）</quote>の有効な入力値は以下のものです。
</para>

    <simplelist>
     <member><literal>FALSE</literal></member>
     <member><literal>'f'</literal></member>
     <member><literal>'false'</literal></member>
     <member><literal>'n'</literal></member>
     <member><literal>'no'</literal></member>
     <member><literal>'0'</literal></member>
    </simplelist>
    <!--Using the key words <literal>TRUE</literal> and
    <literal>FALSE</literal> is preferred (and
    <acronym>SQL</acronym>-compliant).-->

<para>
<acronym>SQL</acronym>との互換性のため、<literal>TRUE</literal>と<literal>FALSE</literal>を使うべきでしょう。

   </para>

   <example id="datatype-boolean-example">
    <!--<title>Using the <type>boolean</type> type</title>-->
    <title><type>boolean</type>型の利用方法</title>

<programlisting>
CREATE TABLE test1 (a boolean, b text);
INSERT INTO test1 VALUES (TRUE, 'sic est');
INSERT INTO test1 VALUES (FALSE, 'non est');
SELECT * FROM test1;
 a |    b
---+---------
 t | sic est
 f | non est

SELECT * FROM test1 WHERE a;
 a |    b
---+---------
 t | sic est
</programlisting>
   </example>

   <para>
    <!--<xref linkend="datatype-boolean-example"> shows that
    <type>boolean</type> values are output using the letters
    <literal>t</literal> and <literal>f</literal>.-->

    <xref linkend="datatype-boolean-example">の図を見てわかるように、<type>boolean</type>値の出力は<literal>t</literal>または<literal>f</literal>となります。

   </para>

   <tip>
    <para>
     <!-- Values of the <type>boolean</type> type cannot be cast
     directly to other types (e.g., <literal>CAST
     (<replaceable>boolval</replaceable> AS integer)</literal> does
     not work).  This can be accomplished using the
     <literal>CASE</literal> expression: <literal>CASE WHEN
     <replaceable>boolval</replaceable> THEN 'value if true' ELSE
     'value if false' END</literal>.  See also <xref
     linkend="functions-conditional">. -->

     <type>boolean</type>型の値は他の型に直接キャストすることができません（<literal>CAST (<replaceable>ブール値</replaceable> ASinteger)</literal>はできません）。これは、<literal>CASE</literal>文を<literal>CASE WHEN<replaceable>ブール値</replaceable> THEN 'value if true' ELSE 'value if false' END</literal>のように使用することによって解決できます。<xref linkend="functions-conditional">も参照してください。

    </para>
   </tip>

   <para>
    <!--<type>boolean</type> uses 1 byte of storage.-->
    <type>boolean</type>型は、記憶領域に1バイト使用します。
   </para>
  </sect1>

  <sect1 id="datatype-geometric">
   <!--<title>Geometric Types</title>-->
   <title>幾何データ型</title>
<indexterm><primary sortas="きかでーたがた">幾何データ型</primary></indexterm>
<indexterm><primary>SQL</primary><secondary sortas="きかでーたがた">幾何データ型</secondary></indexterm>
   <para>
    <!--Geometric types represent two-dimensional spatial objects. 
    The most fundamental type,
    the point, forms the basis for all of the other types.-->

    幾何データ型は2次元空間オブジェクトを表現します。もっとも主要な型はpointで、他のすべての型の基本になります。

   </para>

    <table tocentry="1">
     <!-- <title>Geometric Types</title> -->
   <title>幾何データ型</title>

     <tgroup cols="4">
      <thead>
       <row>
	<entry><!--Geometric Type-->幾何データ型</entry>
	<entry><!--Storage-->データベース上のバイト数</entry>
	<entry><!--Representation-->表現方法</entry>
	<entry><!--Description-->説明</entry>
       </row>
      </thead>
      <tbody>
       <row>
	<entry>point</entry>
	<entry>16バイト</entry>
	<entry>(x,y)</entry>
	<entry><!--Point in space-->空間における座標点</entry>
       </row>
       <row>
	<entry>line</entry>
	<entry>32バイト</entry>
	<entry>((x1,y1),(x2,y2))</entry>
	<entry><!--Infinite line-->無限の直線</entry>
       </row>
       <row>
	<entry>lseg</entry>
	<entry>32バイト</entry>
	<entry>((x1,y1),(x2,y2))</entry>
	<entry><!--Finite line segment-->有限の線分</entry>
       </row>
       <row>
	<entry>box</entry>
	<entry>32バイト</entry>
	<entry>((x1,y1),(x2,y2))</entry>
	<entry><!--Rectangular box-->矩形</entry>
       </row>
       <row>
	<entry>path</entry>
	<entry>4+32nバイト</entry>
	<entry>((x1,y1),...)</entry>
	<entry><!--Closed path (similar to polygon)-->閉じたパス（多角形に似ている）</entry>
       </row>
       <row>
	<entry>path</entry>
	<entry>4+32nバイト</entry>
	<entry>[(x1,y1),...]</entry>
	<entry><!--Open path-->開いているパス</entry>
       </row>
       <row>
	<entry>polygon</entry>
	<entry>4+32nバイト</entry>
	<entry>((x1,y1),...)</entry>
	<entry><!--Polygon (similar to closed path)-->多角形（閉じたパスに似ている）</entry>
       </row>
       <row>
	<entry>circle</entry>
	<entry>24バイト</entry>
	<entry><(x,y),r></entry>
	<entry><!--Circle (center and radius)-->円（中心点と半径）</entry>
       </row>
      </tbody>
     </tgroup>
    </table>

   <para>
    <!--A rich set of functions and operators is available to perform various geometric
    operations such as scaling, translation, rotation, and determining 
    intersections.-->

    拡大/縮小、変換、回転、交点算出などのいろいろな座標操作をするために、多くの機能や演算子の組み合わせが使用できます。 

   </para>

   <sect2>
    <!--<title>Point</title> -->
    <title>座標点（Point）</title>

    <para>
     <!--Points are the fundamental two-dimensional building block for geometric types.-->
     座標（Point）は、地理データ型の基礎となる2次元構成要素です。

    </para>

    <para>
     <!--<type>point</type> is specified using the following syntax:-->
     以下の構文は、<type>point</type>型の書式設定です。</para>


<synopsis>
( <replaceable>x</replaceable> , <replaceable>y</replaceable> )
  <replaceable>x</replaceable> , <replaceable>y</replaceable>
</synopsis>

     <!--where the arguments are-->
<para>
それぞれの要素の意味は以下のとおりです。
</para>

     <variablelist>
      <varlistentry>
       <term><replaceable>x</replaceable></term>
       <listitem>
	<para>
	 <!--The x-axis coordinate as a floating point number.-->
          X座標値（浮動小数点）

	</para>
       </listitem>
      </varlistentry>

      <varlistentry>
       <term><replaceable>y</replaceable></term>
       <listitem>
	<para>
	 <!--The y-axis coordinate as a floating point number.-->
         Y座標値（浮動小数点）

	</para>
       </listitem>
      </varlistentry>
     </variablelist>
   </sect2>

   <sect2>
    <!--<title>Line Segment</title>-->
    <title>線分（lseg）</title>

    <para>
     <!--Line segments (<type>lseg</type>) are represented by pairs of points.-->
     線分（<type>lseg</type>）は、1組の座標点で表現されます。 

    </para>

    <para>
     <!--<type>lseg</type> is specified using the following syntax:-->
     <type>lseg</type>は、下記の形式で設定します。</para>


<synopsis>
( ( <replaceable>x1</replaceable> , <replaceable>y1</replaceable> ) , ( <replaceable>x2</replaceable> , <replaceable>y2</replaceable> ) )
  ( <replaceable>x1</replaceable> , <replaceable>y1</replaceable> ) , ( <replaceable>x2</replaceable> , <replaceable>y2</replaceable> )  
    <replaceable>x1</replaceable> , <replaceable>y1</replaceable>   ,   <replaceable>x2</replaceable> , <replaceable>y2</replaceable>
</synopsis>

     <!--where the arguments are-->
<para>
それぞれの要素の意味は以下のとおりです。
</para>

     <variablelist>
      <varlistentry>
       <term>(<replaceable>x1</replaceable>,<replaceable>y1</replaceable>)</term>
       <term>(<replaceable>x2</replaceable>,<replaceable>y2</replaceable>)</term>
       <listitem>
	<para>
	 <!--The end points of the line segment.-->
	これらの要素は、線分の終端です。
	</para>
       </listitem>
      </varlistentry>
     </variablelist>
   </sect2>

   <sect2>
    <!-- <title>Box</title> -->
    <title>矩形（Box）</title>

    <para>
     <!--Boxes are represented by pairs of points that are opposite
     corners of the box.-->

     矩形は、対角線上の角（かど）を表す1組の座標点（point）で表現されます。

    </para>

    <para>
     <!--<type>box</type> is specified using the following syntax:-->
     <type>box</type>型は、下記の形式で指定します。</para>


<synopsis>
( ( <replaceable>x1</replaceable> , <replaceable>y1</replaceable> ) , ( <replaceable>x2</replaceable> , <replaceable>y2</replaceable> ) )
  ( <replaceable>x1</replaceable> , <replaceable>y1</replaceable> ) , ( <replaceable>x2</replaceable> , <replaceable>y2</replaceable> )  
    <replaceable>x1</replaceable> , <replaceable>y1</replaceable>   ,   <replaceable>x2</replaceable> , <replaceable>y2</replaceable>
</synopsis>

     <!--where the arguments are-->
<para>
それぞれの要素の意味は以下のとおりです。
</para>

     <variablelist>
      <varlistentry>
       <term>(<replaceable>x1</replaceable>,<replaceable>y1</replaceable>)</term>
       <term>(<replaceable>x2</replaceable>,<replaceable>y2</replaceable>)</term>
       <listitem>
	<para>
	<!-- Opposite corners of the box.-->
        対角線上の角です。
	</para>
       </listitem>
      </varlistentry>
     </variablelist>

    <para>
     <!--Boxes are output using the first syntax.
     The corners are reordered on input to store
     the upper right corner, then the lower left corner.
     Other corners of the box can be entered, but the lower
     left and upper right corners are determined from the input and stored.-->

     矩形は上記一番上の書式で出力されます。2つの角は、左下の角を最初に、右上の角を最後に格納するように並べ替えられます。矩形の中の他の角を入力することもできますが、入力から左下と右上の角が決定され、格納されます。
    </para>
   </sect2>

   <sect2>
    <!--<title>Path</title>-->
    <title>パス（Path）</title>

    <para>
     <!--Paths are represented by connected sets of points. Paths can be "open", where
     the first and last points in the set are not connected, and "closed",
     where the first and last point are connected. Functions
     <function>popen(p)</function>
     and
     <function>pclose(p)</function>
     are supplied to force a path to be open or closed, and functions
     <function>isopen(p)</function>
     and
     <function>isclosed(p)</function>
     are supplied to test for either type in a query.-->

     パスは、接続した座標点のセットにより表現されます。パスは、最初の点と最後の点が接続されていない「開いた」状態か、最初の点と最後の点が接続されている「閉じた」状態かのいずれかです。あるパスを強制的に開いた状態や閉じた状態にする<function>popen(p)</function>と<function>pclose(p)</function>が提供されていて、また<function>isopen(p)</function>と<function>isclosed(p)</function>を使うと、問い合わせの中でいずれかのタイプを選択することができます。
 
    </para>

    <para>
     <!--<type>path</type> is specified using the following syntax:-->
     <type>path</type>型は、下記の形式で設定します。</para>


<synopsis>
( ( <replaceable>x1</replaceable> , <replaceable>y1</replaceable> ) , ... , ( <replaceable>xn</replaceable> , <replaceable>yn</replaceable> ) )
[ ( <replaceable>x1</replaceable> , <replaceable>y1</replaceable> ) , ... , ( <replaceable>xn</replaceable> , <replaceable>yn</replaceable> ) ]
  ( <replaceable>x1</replaceable> , <replaceable>y1</replaceable> ) , ... , ( <replaceable>xn</replaceable> , <replaceable>yn</replaceable> )  
  ( <replaceable>x1</replaceable> , <replaceable>y1</replaceable>   , ... ,   <replaceable>xn</replaceable> , <replaceable>yn</replaceable> )  
    <replaceable>x1</replaceable> , <replaceable>y1</replaceable>   , ... ,   <replaceable>xn</replaceable> , <replaceable>yn</replaceable>    
</synopsis>

     <!--where the arguments are-->
<para>
それぞれの要素の意味は以下のとおりです。
</para>

     <variablelist>
      <varlistentry>
       <term>(<replaceable>x</replaceable>,<replaceable>y</replaceable>)</term>
       <listitem>
	<para>
	 <!--End points of the line segments comprising the path.
	 A leading square bracket ("[") indicates an open path, while
	 a leading parenthesis ("(") indicates a closed path.-->

         1から<replaceable>n</replaceable>までの座標点で、「[」で始まるのは開いたパス、「(」で始まるのは閉じたパスです。

	</para>
       </listitem>
      </varlistentry>
     </variablelist>

    <para>
     <!--Paths are output using the first syntax.-->
     パスは、最初の書式で出力されます。

    </para>
   </sect2>

   <sect2>
    <!-- <title>Polygon</title> -->
    <title>多角形（Polygon）</title>

    <para>
     <!--Polygons are represented by sets of points. Polygons should probably be
     considered equivalent to closed paths, but are stored differently 
     and have their own set of support routines.-->

     多角形は、座標点のセットで表現されます。これは、「閉じたパス」と同じであると考えられますが、異なった方法で格納され、また双方とも別々のサポートルーチンセットを持っています。

    </para>

    <para>
     <!--<type>polygon</type> is specified using the following syntax:-->
     <type>polygon</type>型は、下記の形式で指定します。</para>

 
<synopsis>
( ( <replaceable>x1</replaceable> , <replaceable>y1</replaceable> ) , ... , ( <replaceable>xn</replaceable> , <replaceable>yn</replaceable> ) )
  ( <replaceable>x1</replaceable> , <replaceable>y1</replaceable> ) , ... , ( <replaceable>xn</replaceable> , <replaceable>yn</replaceable> )  
  ( <replaceable>x1</replaceable> , <replaceable>y1</replaceable>   , ... ,   <replaceable>xn</replaceable> , <replaceable>yn</replaceable> )  
    <replaceable>x1</replaceable> , <replaceable>y1</replaceable>   , ... ,   <replaceable>xn</replaceable> , <replaceable>yn</replaceable>    
</synopsis>

     <!--where the arguments are-->
<para>
それぞれの要素の意味は以下のとおりです。
</para>

     <variablelist>
      <varlistentry>
       <term>(<replaceable>x</replaceable>,<replaceable>y</replaceable>)</term>
       <listitem>
	<para>
	 <!--End points of the line segments comprising the boundary of the
	 polygon.-->
         1からnまでの座標点です。

	</para>
       </listitem>
      </varlistentry>
     </variablelist>

    <para>
     <!--Polygons are output using the first syntax.-->
     多角形は、最初の書式で出力されます。

    </para>
   </sect2>

   <sect2>
    <!--<title>Circle</title>-->
    <title>円（Circle）</title>

    <para>
     <!--Circles are represented by a center point and a radius.-->
     円（circle）は、中心点座標と半径によって表現されます。

    </para>

    <para>
     <!--<type>circle</type> is specified using the following syntax:-->
     <type>circle</type>型は、下記の形式で指定します。</para>


<synopsis>
&lt; ( <replaceable>x</replaceable> , <replaceable>y</replaceable> ) , <replaceable>r</replaceable> &gt;
( ( <replaceable>x</replaceable> , <replaceable>y</replaceable> ) , <replaceable>r</replaceable> )
  ( <replaceable>x</replaceable> , <replaceable>y</replaceable> ) , <replaceable>r</replaceable>  
    <replaceable>x</replaceable> , <replaceable>y</replaceable>   , <replaceable>r</replaceable>  
</synopsis>

     <!--where the arguments are-->
<para>
それぞれの要素の意味は以下のとおりです。
</para>

     <variablelist>
      <varlistentry>
       <term>(<replaceable>x</replaceable>,<replaceable>y</replaceable>)</term>
       <listitem>
	<para>
	 <!--Center of the circle.-->
         円の中心座標です。

	</para>
       </listitem>
      </varlistentry>

      <varlistentry>
       <term><replaceable>r</replaceable></term>
       <listitem>
	<para>
	 <!--Radius of the circle.-->
         円の半径です。

	</para>
       </listitem>
      </varlistentry>
     </variablelist>

    <para>
     <!--Circles are output using the first syntax.-->
     円は、最初の構文で出力されます。
    </para>
   </sect2>

  </sect1>

  <sect1 id="datatype-net-types">
   <!--<title>Network Address Data Types</title>-->
   <title>ネットワークアドレスデータ型</title>
<indexterm><primary sortas="ねっとわーくあどれすでーたがた">ネットワークアドレスデータ型</primary></indexterm>
<indexterm><primary>SQL</primary><secondary sortas="ねっとわーくあどれすでーたがた">ネットワークアドレスデータ型</secondary></indexterm>
   <para>
    <!--<productname>Postgres</> offers data types to store IP and MAC
    addresses.  It is preferable to use these types over plain text
    types, because these types offer input error checking and several
    specialized operators and functions.-->

    <productname>Postgres</>には、IPアドレスとMACアドレスを格納するためのデータ型があります。この型では入力された値と特別な演算子や関数のチェックを行うので、文字データ型を使用するよりもこちらを使うべきでしょう。</para>


    <table tocentry="1" id="datatype-net-types-table">
     <!--<title>Network Address Data Types</title>-->
     <title>ネットワークアドレスデータ型</title>
     <tgroup cols="4">
      <thead>
       <row>
	<entry><!--Name-->名称</entry>
	<entry><!--Storage-->データベース上のバイト数</entry>
	<entry><!--Description-->説明</entry>
	<entry><!--Range-->有効範囲</entry>
       </row>
      </thead>
      <tbody>

       <row>
	<entry>cidr</entry>
	<entry>12<!--bytes-->バイト</entry>
	<entry><!--IP networks-->IPネットワーク</entry>
	<entry><!--valid IPv4 networks-->有効なIPv4ネットワーク</entry>
       </row>

       <row>
	<entry>inet</entry>
	<entry>12<!--bytes-->バイト</entry>
	<entry><!--IP hosts and networks-->IPホストとネットワーク</entry>
	<entry><!--valid IPv4 hosts or networks-->有効なIPv4ホスト、またはネットワーク</entry>
       </row>

       <row>
	<entry>macaddr</entry>
	<entry>6<!--bytes-->バイト</entry>
	<entry>MAC<!--addresses-->アドレス</entry>
	<entry><!--customary formats-->通常のフォーマット</entry>
       </row>

      </tbody>
     </tgroup>
    </table>

   <para>
    <!--IP v6 is not supported, yet.-->
    IPv6はまだサポートされていません。 

   </para>


   <sect2 id="datatype-inet">
    <title><type>inet</type></title>

    <para>
     <!--The <type>inet</type> type holds an IP host address, and
     optionally the identity of the subnet it is in, all in one field.
     The subnet identity is represented by the number of bits in the
     network part of the address (the <quote>netmask</quote>).  If the netmask is 32,
     then the value does not indicate a subnet, only a single host.
     Note that if you want to accept networks only, you should use the
     <type>cidr</type> type rather than <type>inet</type>.-->

     <type>inet</type>型は、IPホストアドレスとオプションでそのホストアドレスのサブネットマスクの識別を1つのフィールドに保持しています。サブネットマスクの識別はアドレスのネットワークの部分（<quote>netmask</quote>）のビット数で表されます。もしネットマスクが32だった場合、それはシングルホストを意味し、サブネットではありません。ネットワークのみを使用したい場合は<type>inet</type>型ではなく<type>cidr</type>型を利用してください。

    </para>

    <para>
     <!--The input format for this type is <replaceable
     class="parameter">x.x.x.x/y</replaceable> where <replaceable
     class="parameter">x.x.x.x</replaceable> is an IP address and
     <replaceable class="parameter">y</replaceable> is the number of
     bits in the netmask.  If the <replaceable
     class="parameter">/y</replaceable> part is left off, then the
     netmask is 32, and the value represents just a single host.
     On display, the <replaceable class="parameter">/y</replaceable>
     portion is suppressed if the netmask is 32.-->

     これらの関数を使うときの入力書式は<replaceable class="parameter">x.x.x.x/y</replaceable>で、<replaceable class="parameter">x.x.x.x</replaceable>がインターネットホストアドレス、<replaceable class="parameter">y</replaceable>はネットマスクのビット数です。もし<replaceable class="parameter">/y</replaceable>の部分を省略すると、ネットマスクは32となり、シングルホストを意味します。ネットマスクが32の場合、画面では<replaceable class="parameter">/y</replaceable>の部分は表示されません。

    </para>
   </sect2>

   <sect2 id="datatype-cidr">
    <title><type>cidr</></title>

    <para>
     <!--The <type>cidr</type> type holds an IP network specification.
     Input and output formats follow Classless Internet Domain Routing
     conventions.
     The format for
     specifying classless networks is <replaceable
     class="parameter">x.x.x.x/y</> where <replaceable
     class="parameter">x.x.x.x</> is the network and <replaceable
     class="parameter">y</> is the number of bits in the netmask.  If
     <replaceable class="parameter">y</> is omitted, it is calculated
     using assumptions from the older classful numbering system, except
     that it will be at least large enough to include all of the octets
     written in the input.-->

     <type>cidr</type>型は、IPネットワークの詳細を保持します。入出力フォーマットはクラス分けのない（classless networks）インターネットドメインルーティングに従っています。クラス分けのないネットワークアドレスを指定するためのフォーマットは<replaceable class="parameter">x.x.x.x/y</>で、<replaceable class="parameter">x.x.x.x</>はネットワークアドレス、<replaceable class="parameter">y</>はネットマスクのビット数です。もし<replaceable class="parameter">y</>が省略された場合には、入力時に書かれたオクテットのすべてが含められるように大きさが確保されること以外は、以前のクラス名付けシステムシステムを元に計算されます。
    </para>

    <para>
     <!--Here are some examples:-->
     以下は例を示します。</para>

     <table tocentry="1">
      <!--<title><type>cidr</> Type Input Examples</title>-->
      <title><type>cidr</>型入力例</title>
      <tgroup cols="3">
       <thead> 
	<row> 
	 <entry>CIDR<!--Input-->入力</entry>
	 <entry>CIDR<!--Displayed-->表示</entry>
	 <entry><!--abbrev(CIDR)-->CIDR略</entry>
	</row>
       </thead>
       <tbody>
	<row>
	 <entry>192.168.100.128/25</entry>
	 <entry>192.168.100.128/25</entry>
	 <entry>192.168.100.128/25</entry>
	</row>
	<row>
	 <entry>192.168/24</entry>
	 <entry>192.168.0.0/24</entry>
	 <entry>192.168.0/24</entry>
	</row>
	<row>
	 <entry>192.168/25</entry>
	 <entry>192.168.0.0/25</entry>
	 <entry>192.168.0.0/25</entry>
	</row>
	<row>
	 <entry>192.168.1</entry>
	 <entry>192.168.1.0/24</entry>
	 <entry>192.168.1/24</entry>
	</row>
	<row>
	 <entry>192.168</entry>
	 <entry>192.168.0.0/24</entry>
	 <entry>192.168.0/24</entry>
	</row>
	<row>
	 <entry>128.1</entry>
	 <entry>128.1.0.0/16</entry>
	 <entry>128.1/16</entry>
	</row>
	<row>
	 <entry>128</entry>
	 <entry>128.0.0.0/16</entry>
	 <entry>128.0/16</entry>
	</row>
	<row>
	 <entry>128.1.2</entry>
	 <entry>128.1.2.0/24</entry>
	 <entry>128.1.2/24</entry>
	</row>
	<row>
	 <entry>10.1.2</entry>
	 <entry>10.1.2.0/24</entry>
	 <entry>10.1.2/24</entry>
	</row>
	<row>
	 <entry>10.1</entry>
	 <entry>10.1.0.0/16</entry>
	 <entry>10.1/16</entry>
	</row>
	<row>
	 <entry>10</entry>
	 <entry>10.0.0.0/8</entry>
	 <entry>10/8</entry>
	</row>
       </tbody>
      </tgroup>
     </table>
   </sect2>

   <sect2 id="datatype-inet-vs-cidr">
    <!--<title><type>inet</type> vs <type>cidr</type></title>-->
    <title><type>inet</type>型と<type>cidr</type>型の違い</title>

    <para>
    <!--The essential difference between <type>inet</type> and <type>cidr</type>
    data types is that <type>inet</type> accepts values with nonzero bits to
    the right of the netmask, whereas <type>cidr</type> does not.-->

    <type>inet</type>型と<type>cidr</type>型の根本的な違いは、<type>inet</type>型はネットマスクの右側に0以外のビット値を受け付けますが、<type>cidr</type>型は受け付けないということです。</para>


      <tip>
        <para>
	<!--If you do not like the output format for <type>inet</type> or
	<type>cidr</type> values, try the <function>host</>(),
	<function>text</>(), and <function>abbrev</>() functions.-->

         <type>inet</type>型や<type>cidr</type>型の値のフォーマットを変更したい場合は、<function>host</>()、<function>text</>()、<function>abbrev</>()の関数を使います。

	</para>
      </tip>
   </sect2>

   <sect2 id="datatype-macaddr">
    <title><type>macaddr</></>

    <para>
     <!--The <type>macaddr</> type stores MAC addresses, i.e., Ethernet
     card hardware addresses (although MAC addresses are used for
     other purposes as well).  Input is accepted in various customary
     formats, including <literal>'08002b:010203'</>,
     <literal>'08002b-010203'</>, <literal>'0800.2b01.0203'</>,
     <literal>'08-00-2b-01-02-03'</>, and
     <literal>'08:00:2b:01:02:03'</>, which would all specify the same
     address.  Upper and lower case is accepted for the digits
     <literal>a</> through <literal>f</>.  Output is always in the
     latter of the given forms.-->

     <type>macaddr</>型はMACアドレス（イーサネットカードのアドレス、他の用途にも使用されることもありますが）を保持します。<literal>'08002b:010203'</>、<literal>'08002b-010203'</>、<literal>'0800.2b01.0203'</>、<literal>'08-00-2b-01-02-03'</>、<literal>'08:00:2b:01:02:03'</>など、さまざまなフォーマットでの入力が可能で、上記のものはすべて同じアドレスとみなされます。<literal>a</>から<literal>f</>までの桁では、大文字と小文字の両方が入力可能です。出力は必ず与えられた後者の形式となります。

    </para>

    <para>
     <!--The directory <filename class="directory">contrib/mac</filename>
     in the <productname>Postgres</productname> source distribution
     contains tools that can be used to map MAC addresses to hardware
     manufacturer names.-->

     <productname>Postgres</productname>のソースディストリビューション内の<filename class="directory">contrib/mac</filename>ディレクトリには、MACアドレスとハードウェアの製造者の対応ができるツールがあります。

    </para>
   </sect2>

  </sect1>

  <sect1 id="datatype-bit">
   <!--<title>Bit String Types</title>-->
   <title>ビット列型</title>
<indexterm><primary sortas="びっとれつがた">ビット列型</primary></indexterm>
<indexterm><primary>SQL</primary><secondary sortas="びっとれつがた">ビット列型</secondary></indexterm>
   <para>
    <!--Bit strings are strings of 1's and 0's.  They can be used to store
    or visualize bit masks.  There are two SQL bit types:
    <type>BIT(<replaceable>x</replaceable>)</type> and <type>BIT
    VARYING(<replaceable>x</replaceable>)</type>; the
    <replaceable>x</replaceable> specifies the maximum length.
    <type>BIT</type> type data is automatically padded with 0's on the
    right to the maximum length, <type>BIT VARYING</type> is of
    variable length.  <type>BIT</type> without length is equivalent
    to <literal>BIT(1)</literal>, <type>BIT VARYING</type> means
    unlimited length.  Input data that is longer than the allowed
    length will be truncated.  Refer to <xref
    linkend="sql-syntax-bit-strings"> for information about the syntax
    of bit string constants.  Bit-logical operators and string
    manipulation functions are available; see <xref
    linkend="functions">.-->

    ビット列とは、1と0で構成されている列のことです。ビットマスクを格納したり、視覚化するためにあります。SQLのビット型には<type>BIT(<replaceable>x</replaceable>)</type>と、<type>BIT VARYING(<replaceable>x</replaceable>)</type>の2種類があり、ここでの<replaceable>x</replaceable>とは最大の長さを表します。<type>BIT</type>型は自動的に可能最大値まで右側に0を付け足します。<type>BIT VARYING</type>型は可変長です。<type>BIT</type>型で長さが明記されていないものは<literal>BIT(1)</literal>と同義で、<type>BIT VARYING</type>型は長さの制限がありません。入力されたデータが収納可能な長さよりも長い場合は切り詰められてしまいます。ビット列の定数の構文の詳細は<xref linkend="sql-syntax-bit-strings">を参照してください。また、ビット理論演算子と列の関数に関しては<xref linkend="functions">を参照してください。

   </para>

   <informalexample>
    <para>
     <!--Some examples:-->
     ビット列型の例を以下に示します。</para>

<programlisting>
CREATE TABLE test (a BIT(3), b BIT VARYING(5));
INSERT INTO test VALUES (B'101', B'00');
SELECT SUBSTRING(b FROM 1 FOR 2) FROM test;
</programlisting>
   </informalexample>

  </sect1>

 </chapter>

<!-- Keep this comment at the end of the file
Local variables:
mode:sgml
sgml-omittag:nil
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
sgml-parent-document:nil
sgml-default-dtd-file:"./reference.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:("/usr/lib/sgml/catalog")
sgml-local-ecat-files:nil
End:
-->
