MySQL

【MySQL】DATETIME型でデータの更新日を自動表示する手順(phpMyAdmin)

MySQLのDATETIME型を使うことで、データの更新日を自動で表せる!のでメモっす。

MySQLのDATETIME型で自動日付更新されるGIF

 補足
MySQLでORDER BYを使ったソート方法を理解しておくと、この記事もスムーズかもです!多分!

MySQL(phpMyAdmin)のDATETIME型で更新日時付与する

そもそもtimestamp型でも、データ更新された日付の自動取得は可能なのですが、どうやら2038年問題というものに引っかかっている型なようです。

【出典】2038年問題 -Wikipedia

 2038問題とは
2038年1月19日3時14分7秒を過ぎたとき、コンピューターが誤作動を起こし、時刻に狂いが生じるとされる問題。

 

MuySQLの初学者な僕としては、重大なバグになったら改修できなそう、と感じたのでDATETIME型を使って日付更新を学んでいこうと決意

DATETIME 型は、日付と時間の両方の部分を含む値に使用されます。MySQL では、DATETIME 値の取得と表示は 'YYYY-MM-DD HH:MM:SS' 形式で行われます。サポートしている範囲は '1000-01-01 00:00:00' から '9999-12-31 23:59:59' です。

【引用】MySQL:11.3.1 DATE、DATETIME、および TIMESTAMP 型

今回は以下のテーブルを使って、DATETIME型の設定を行っていきます。

SELECT * FROM mytable

DATETIME型のテスト対象となるテーブル

1. 構造タブを選択して新規カラムを追加

構造タブをクリックして、

構造タブをクリック

カラムを任意の位置に追加するで実行。

カラムを追加する

2.カラム編集画面でDATE TIME型を定義

カラムの編集画面に入るので、以下のように選択して保存

  • 名前:登録日(適当)
  • データ型:DATETIME
  • 属性:on update current_timestamp
ALTER TABLE `mytable` ADD `登録日` DATETIME on update CURRENT_TIMESTAMP NOT NULL AFTER `yomi`;

名前とデータ型は以下に設定して、

名前に登録日、データ型にDATETIMEを設定

属性は「on update current_timestamp」を設定。

属性にon update current_timestampを設定

3. DATETIME型が動くか動作確認

表示タブを選択してテーブルを表示すると、

SELECT * FROM mytable

表示タブをクリック

登録日のカラムが増えてるのが分かります↓

テーブルに登録日が設定された

idの4と5が重複してるので、id=5のレコードの内容を編集します。5行目の「編集」をクリック

5行目の編集をクリック

 補足
phpMyAdminは項目をダブルクリックすることで、すぐに内容の編集ができますが、日時の変更はなされません。

yomiの行のテキスト「みず」を「すい」へテキストを修正し実行。

みずからすいへテキスト変更したGIF

編集したレコードの登録日に最新日時が入りました!

編集したレコードの日付が更新された

いえーい。

注意!
テキストの追加や削除、編集など行わずにレコードの編集画面を更新・実行しただけでは、日時の変更がなされません

まとめ

レコードの編集や追加した日時を自動で取得できるようになれば、

  • 何をいつやったのか

  • いつ取得したのか

などなど、履歴を追いながら改善を測ることが容易になるのではないでしょうか。

 

oyakun
次回はMySQLにてSUMやCOUNTなど利用して、テーブルの値で計算を行ってみます!

>【MySQL】ORDER BY句でデータの並び替えを行う方法

>MySQLのWHEREとLIKE演算子でデータ検索する方法

>MySQLでWHERE句使ってデータ抽出する手順

  • この記事を書いた人
  • 最新記事
oyakun

oyakun

30代半ば♂妻・子3人の5人で日々激戦中。Google app script&VBA初心者が自分の備忘録を兼ねて「スプレッドシート、Excel、WordPress、plugin」の設定等、主にブログやアフィリエイト周辺のtipsを背伸びしながらご紹介しています。

Copyright© OYAKUDACHI.XYZ , 2019 All Rights Reserved.