読み方 : タイムスタンプがた

TIMESTAMP型【TIMESTAMP type】

TIMESTAMP型とは?

データベース管理システムDBMS)やプログラミング言語において、日付と時刻を組み合わせた日時データを格納するデータ型。年・月・日・時・分・秒をひとまとめにして記録し、「2026-05-27 14:30:00」のように表現される。
TIMESTAMP型のイメージ画像

データベースではDATE型が日付のみ、TIME型が時刻のみを扱うのに対し、TIMESTAMP型は日時を一体として保持する。実装によっては秒未満の小さな時間単位(ミリ秒マイクロ秒など)まで格納できるものもある。MySQLPostgreSQLOracle Databaseなど主要なRDBMSはいずれもTIMESTAMP型を備えているが、扱える範囲や精度、内部的な格納方式はシステムによって異なる。

レコードの作成日時や更新日時、あるいは、注文日時、ユーザー登録日時、ログの発生時刻など、「いつ」という情報が意味を持つ様々な場面で使われる。また、二つの日時の差から処理時間や経過日数を算出したり、特定期間内のデータを抽出したりする時刻計算にも利用される。

タイムゾーンの扱いは製品によって異なる。MySQLのTIMESTAMP型は値をUTC協定世界時)で保存し、取得時にセッションタイムゾーン設定に応じて変換して返す。PostgreSQLでは「TIMESTAMP WITH TIME ZONE」と「TIMESTAMP WITHOUT TIME ZONE」を区別している。国際的なサービスでは、地域ごとの時差を考慮した管理が必要となるため、タイムゾーン対応のTIMESTAMP型が用いられることが多い。

内部的にはUNIX時間(1970年1月1日0時0分0秒からの経過秒数)として格納される実装が多い。この方式では、符号付き32ビット整数の上限を超える2038年以降の日時を正しく扱えなくなる「2038年問題」が知られている。現在では64ビット整数への移行などにより対処が進んでいる。MySQLにはTIMESTAMP型に加えてDATETIME型も存在し、後者はこの制約を持たないため、より広い範囲の日時を扱える。

なお、SQL ServerのTIMESTAMP型は、任意の日付・時刻を格納するデータ型ではなく、行(レコード)のバージョン管理を行うためにシステム側が自動で更新時刻を格納するためのもので、利用者が値を記録することはできない。現在では「ROWVERSION」型に改名されているが、過去との互換性のために同義語として「TIMESTAMP」が用いられるため注意が必要である。

この記事の著者 : (株)インセプト IT用語辞典 e-Words 編集部
1997年8月より「IT用語辞典 e-Words」を執筆・編集しています。累計公開記事数は1万ページ以上、累計サイト訪問者数は1億人以上です。学術論文や官公庁の資料などへも多数の記事が引用・参照されています。