MySQLでサポートされている日付・時刻データ型は5種類!それぞれの特徴と使い分けを解説
MySQLでは、日付や時刻を扱うために5種類のデータ型が用意されています。それぞれ保存できる範囲や形式が異なるため、用途に応じて適切な型を選ぶことが重要です。ここでは、各データ型の特徴と具体例をわかりやすく解説します。
1. DATE(日付)
日付のみを保存するデータ型です。扱える範囲は 1000-01-01 ~ 9999-12-31 で、デフォルトの形式は「YYYY-MM-DD」です。
例:1984年1月17日は「1984-01-17」として保存されます。
2. DATETIME(日付+時刻)
日付と時刻の両方を保存できるデータ型です。扱える範囲は 1000-01-01 00:00:00 ~ 9999-12-31 23:59:59 と非常に広く、デフォルトの形式は「YYYY-MM-DD HH:MM:SS」です。
例:1984年1月17日の午後2時20分は「1984-01-17 14:20:00」として保存されます。
3. TIMESTAMP(タイムスタンプ)
DATETIMEと同様に日付と時刻を保存できますが、扱える範囲は '1970-01-01 00:00:01' ~ '2038-01-19 08:44:07' と限られています。この範囲はUNIXタイムスタンプの制約によるものです。
例:1984年1月17日の午後2時20分は「1984-01-17 14:20:00」として保存されます。
補足:TIMESTAMPはタイムゾーンの影響を受ける点がDATETIMEとの大きな違いです。また、2038年問題と呼ばれる上限があるため、長期的な日付を扱う場合はDATETIMEを選ぶのが安全です。
4. TIME(時刻)
時刻のみを保存するデータ型で、「HH:MM:SS」形式で値を保持します。経過時間や勤務時間など、日付を伴わない時間情報の管理に適しています。
5. YEAR(M)(年)
年のみを保存するデータ型で、2桁または4桁の形式を選択できます。
- YEAR(2) の場合:1970~2069年(70~69)の範囲で保存可能
- YEAR(4) の場合:1901~2155年の範囲で保存可能
デフォルトの桁数は4です。なお、YEAR(2)は現在のMySQLバージョンでは非推奨となっているため、新規開発ではYEAR(4)の使用が推奨されます。
まとめ:使い分けのポイント
- 日付だけなら DATE
- 広い範囲の日付+時刻なら DATETIME
- タイムゾーン対応やレコードの更新記録には TIMESTAMP
- 時刻のみなら TIME
- 年だけなら YEAR
目的に合ったデータ型を選ぶことで、ストレージの効率化とデータの正確性の両方を実現できます。
-
Androidのインテントには何種類ある?明示的・暗黙的インテントの違いと実装方法を徹底解説
インテント(Intent)とは?インテントの種類を学ぶ前に、まず「インテントとは何か」を理解しておきましょう。インテントとは、特定のアクションを実行するための仕組みであり、主に以下のような目的で使用されます。アクティビティ(Activity)の起動ブロードキャストレシーバーへの送信サービス(Service)の開始2つのアクティビティ間でのメッセージ(データ)の受け渡しAndroidで使用できるインテントは、「明示的インテント(Explicit Intent)」と「暗黙的インテント(Implicit Intent)」の2種類です。明示的インテント(Explicit Intent)とは明示的インテ
-
MySQLで特定のカラムのデータをエクスポートする方法(INTO OUTFILEの使い方)
MySQLで特定のカラムのデータをエクスポートする方法 MySQLでテーブルから特定のカラム(列)のデータだけをファイルに書き出したい場合は、SELECT文とINTO OUTFILEを組み合わせるのが最もシンプルで確実な方法です。この記事では、実際にテーブルを作成し、データを投入したうえで、特定のカラムをテキストファイルへエクスポートする手順を順番に解説します。 基本構文 特定のカラムをファイルに出力する際の基本構文は次のとおりです。 select yourColumnName from yourTableName into outfile yourLocationOfFile; このように