3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

DATETIME型とTIMESTAMP型の使い分け【SQL】

Last updated at Posted at 2025-08-21

はじめに

オブジェクティブグループの@bachiuekiです!
弊社では月に1回、社内講習会を開いておりまして自分はSQL講習を担当しております。

今回は講習内でも質問が多い、型の使い分けについてのお話です。
データベースで日時を扱うとき、DATETIMETIMESTAMPという2つの型がよく使われます。どちらも「年月日と時刻」を保存するための型ですが、実は明確な違いがあり、正しく使い分けることが重要です。

この記事では、それぞれの特徴と具体的な使い分けについて、初心者の方にも分かりやすく解説します。

DATETIME型とは?

DATETIMEは、入力された日時をそのまま保存する 型です。
例えば '2025-08-21 10:00:00' という値を保存したら、そのままの値が記録されます。シンプルで直感的に理解しやすいのが特徴です。

  • 特徴: タイムゾーンの情報を持ちません。
  • 得意なこと: タイムゾーンに左右されない、普遍的な日時を記録するのに向いています。

どんな時に使う?

  • ユーザーの誕生日: 世界のどこにいても同じ日付です。
  • イベントの開催日時: 「2026年1月1日 午前9時(日本時間)」のように、基準となる場所が決まっている絶対的な時刻。
  • お店の営業時間: 毎日10時開店など、場所に基づいた固定の時刻。

このように、誰がどこから見ても変わらない「絶対的な日時」を記録したい場合にDATETIMEを使いましょう。

TIMESTAMP型とは?

TIMESTAMPは、タイムゾーンを考慮して自動的に変換してくれる型です。

保存時にはデータベースに設定されたタイムゾーン(多くは UTC: 協定世界時)に変換して保存され、
取得時には利用者のタイムゾーンに合わせて再変換して表示されます。

  • 特徴: タイムゾーンの情報を考慮して値を変換してくれる。
  • 得意なこと: 世界中のユーザーが使うシステムで、それぞれの現地時間に合わせて日時を表示するのに向いています。

どんな時に使う?

  • 記事の投稿日時や更新日時 (created_at, updated_at): 日本のユーザーには日本時間で、アメリカのユーザーにはアメリカ時間で表示したい場合。
  • システムの操作ログ: 「いつ、誰が、何をしたか」を記録する際、タイムゾーンが異なると混乱するため、基準となる時刻(UTC)で保存しておくのが一般的です。

世界中の人が利用するWebサービスなど、タイムゾーンを意識する必要がある場合はTIMESTAMPを選ぶと良いでしょう。

比較まとめ

DATETIME TIMESTAMP
タイムゾーン 考慮しない(そのまま保存) 考慮する(UTCに変換して保存)
値の範囲 広い (例: 1000年〜9999年) 比較的狭い (例: 1970年〜2038年) ※
用途 誕生日、イベント日時など絶対的な時刻 投稿日時、更新日時など相対的な時刻

TIMESTAMPの範囲はデータベースのバージョンによって改善されているため、最近のシステムではあまり気にする必要はありません。

結論:どう使い分ける?

シンプルにまとめると、こうなります。

  • タイムゾーンを気にしたくない、絶対的な日時DATETIME
  • 世界中のユーザーのタイムゾーンを考慮したいTIMESTAMP

特に、Webアプリケーションでよく使われるcreated_at(作成日時)やupdated_at(更新日時)のようなカラムには、TIMESTAMPを使うのが一般的です。

おわりに

今回はDATETIMETIMESTAMPの違いと使い分けについて解説しました。
日時の扱いはバグの原因になりやすいポイントの一つです。それぞれの型の特徴をしっかり理解して、適切な方を使い分けられるようになりましょう!


オブジェクティブグループではXの投稿も平日毎日行っています!
IT 関連の小ネタや便利技から、日常のアニメ・ゲーム布教なども幅広く投稿してるので、
ご興味のある方は是非フォロー・いいねをお願いします。

3
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?