PostgreSQLスキルアップノート(自己啓発のための個人サイト)

日付/時刻関連のデータ型


【一覧に戻る】
マニュアルへのリンクは/9.2/としています。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
■■■■ PostgreSQL スキルアップノート
■■■■
■◆■■ 日付/時刻関連のデータ型
■■■■
■■■■
■■■■ 2013/03/04
■■■■ 使用環境:PostgreSQL9.1.7 (CentOS6.2)
                                                                   (C) 2013 ohdb
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

【マニュアル】


第8章データ型/日付/時刻データ型→●[マニュアル]
第9章関数と演算子/データ型書式設定関数→●[マニュアル]
第9章関数と演算子/日付/時刻関数と演算子→●[マニュアル]

第18章サーバの設定/クライアント接続デフォルト→●[マニュアル]

【マニュアル参考】

SQLコマンドリファレンス・SET→●[マニュアル]

付録 B. 日付/時刻のサポート→●[マニュアル]


【その他】
  ISO8601(日付と時刻の表記に関する国際規格)→●[その他]



■1■ 日付/時刻データ型(簡易版)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

さまざまな型、オプションがあるが、科学用途以外、日本時間のみでよいシステムであれば
以下の3つから選べば十分と思われる。


データ型        サイズ  内容
-----------------------------------------------------------------------------
date             4B     日付      時刻なし
timestamp(0)     8B     日付時刻  秒まで(0指定小数秒なし) タイムゾーンなし
time(0)          8B     時刻      秒まで(0指定小数秒なし) タイムゾーンなし
-----------------------------------------------------------------------------
他にinterval型は用途によっては価値あり。(詳細は未調査)


timestampはゼロ(0)を指定しないとμ秒まで保持される。
current_timestamp等で取得した値を入れると(業務的に必要なくても)小数秒が格納され、
その扱いの不統一などによって取り出したときの結果が変わるなどのトラブルになりかねない。
(別のページにて記載)
このため「timestamp」ではなく、まずは基本として「timestamp(0)」を挙げた。



■2■ 日付/時刻データ型(詳細版)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

第8章データ型/日付/時刻データ型→●[マニュアル]



データ型                         サイズ  内容
-----------------------------------------------------------------------------
date                                 4B  日付のみ 
-----------------------------------------------------------------------------
timestamp [(p)] [without time zone]  8B  日付時刻 タイムゾーンなし
-----------------------------------------------------------------------------
timestamp [(p)] with time zone       8B  日付時刻 タイムゾーンあり
-----------------------------------------------------------------------------
time [(p)]  [without time zone]      8B  時刻     タイムゾーンなし
-----------------------------------------------------------------------------
time [(p)] with time zone           12B  時刻     タイムゾーンあり
-----------------------------------------------------------------------------
interval [ fields ] [(p)]           12B  時間間隔  
-----------------------------------------------------------------------------

・pはいずれも小数秒の桁数。 

  指定しない場合、通常の環境なら「6」  マイクロ秒  
  指定する場合、  timestamp(0)〜timestamp(6)


・タイムゾーン (マニュアルでは「時間帯」と表記)
  timestampとtimeではタイムゾーンを指定できる。
  指定を省略すればタイムゾーンなし  without time zone となる。

・fieldsは以下の通り
  年レベル   YEAR
  月レベル   MONTH    YEAR TO MONTH
  日レベル   DAY
  時間レベル HOUR     DAY TO HOUR
  分レベル   MINUTE   DAY TO MINUTE   HOUR TO MINUTE
  秒レベル   SECOND   DAY TO SECOND   HOUR TO SECOND   MINUTE TO SECOND


・別名のデータ型timestamptz,timetz
  postgres独自で、また\dで確認しても標準の型に変換される。
  表記のしやすさだけで、あえて使うメリットはない。
    timestamptz        =>timestamp with time zone
    timetz             =>time with time zone




以上 
inserted by FC2 system