MySQL
 Computer >> コンピューター >  >> プログラミング >> MySQL

INT型カラムに格納されたUNIXタイムスタンプをMySQLのTIMESTAMPとして取得するには?

テーブルのINT型カラムに整数値として保存されているタイムスタンプを、MySQLのTIMESTAMP形式として取得したい場合は、FROM_UNIXTIME() 関数を使用します。この関数は、UNIXエポック(1970年1月1日 00:00:00 UTC)からの経過秒数を、人間が読める日時形式に変換してくれます。

サンプルデータの確認

ここでは、「test123」というテーブルに「val1」というINT型カラムがあり、以下のように整数値が保存されているとします。

mysql> Select * from test123;
+------------+
| val1       |
+------------+
|     150862 |
| 1508622563 |
|  622556879 |
| 2147483647 |
+------------+
4 rows in set (0.00 sec)

FROM_UNIXTIME()関数でTIMESTAMP形式に変換する

FROM_UNIXTIME()関数を使えば、これらの整数値をMySQLのTIMESTAMPデータとして簡単に取得できます。

mysql> Select FROM_UNIXTIME(Val1) from test123;
+---------------------+
| FROM_UNIXTIME(Val1) |
+---------------------+
| 1970-01-02 23:24:22 |
| 2017-10-22 03:19:23 |
| 1989-09-23 17:57:59 |
| 2038-01-19 08:44:07 |
+---------------------+
4 rows in set (0.00 sec)

補足:2038年問題に注意

上記の例で「2147483647」が「2038-01-19 08:44:07」に変換されている点に注目してください。これは32ビット符号付き整数で表現できる最大値であり、いわゆる2038年問題の上限に相当します。INT型でタイムスタンプを扱う場合、2038年1月19日以降の日時は正しく表現できないため、将来を見据える場合はBIGINT型の使用やDATETIME型への移行も検討するとよいでしょう。

  1. MySQLのSMALLINTに相当するJavaの型は?short型との対応関係を解説

    MySQLのSMALLINTに相当するJavaのデータ型は、short型です。Javaのshort型は2バイト(16ビット)の符号付き整数で、-32768から32767までの範囲の値を扱うことができます。MySQLのSMALLINTも同様に2バイトで、同じ範囲の値を格納可能です。MySQLのSMALLINTとJavaのshort型の比較項目MySQL(SMALLINT)Java(short)サイズ2バイト(16ビット)2バイト(16ビット)値の範囲-32768 ~ 32767-32768 ~ 32767備考UNSIGNEDを指定すると0 ~ 65535になる符号付きのみなお、MySQLでUNS

  2. MySQLで列の最大値を取得する方法をわかりやすく解説

    MySQLで特定の列の最大値を取得するには、MAX(columnName)関数を使用します。本記事では、その基本的な使い方に加えて、データベースやテーブルの設計に関する前提知識もあわせて解説します。MySQLのデータベースとテーブルの基礎MySQLをインストールする前に、まず使用するバージョンと配布形式(バイナリファイルか、ソースファイルからビルドするか)を決定することが重要です。新しく作成したばかりのデータベースには、当然ながらテーブルはまだ存在しません。データベース設計において最も重要なのは、以下の要素を決めることです。データベース全体の構造必要となるテーブルの一覧各テーブルに含まれる列(