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

MySQLで秒数をTIMESTAMPに変換する方法|FROM_UNIXTIME()関数の使い方

MySQLでは、FROM_UNIXTIME()関数を使うことで、秒数(Unixタイムスタンプ)をTIMESTAMP型の日時データに変換できます。これはUNIX_TIMESTAMP()関数と正反対の働きをする関数です。

例えば、11576070秒という値は、TIMESTAMP型の「1970-05-15 05:04:30」に変換されます。

mysql> Select FROM_UNIXTIME(11576070);
+--------------------------------+
| FROM_UNIXTIME(11576070)        |
+--------------------------------+
| 1970-05-15 05:04:30            |
+--------------------------------+
1 row in set (0.00 sec)

FROM_UNIXTIME()関数とは

FROM_UNIXTIME()は、Unixエポック(1970年1月1日 00:00:00 UTC)からの経過秒数を引数として受け取り、「YYYY-MM-DD HH:MM:SS」形式の日時文字列、または文脈によってはYYYYMMDDHHMMSS形式の数値として返すMySQLの組み込み関数です。返される日時は、セッションのタイムゾーン設定に依存します。

逆にTIMESTAMPから秒数へ変換する場合

反対に、日時データを秒数に変換したいときはUNIX_TIMESTAMP()関数を使用します。この2つの関数は互いに逆の変換を行うため、組み合わせて使えば元の値に戻すことも可能です。

mysql> Select UNIX_TIMESTAMP('1970-05-15 05:04:30');
+---------------------------------------+
| UNIX_TIMESTAMP('1970-05-15 05:04:30') |
+---------------------------------------+
| 11576070                              |
+---------------------------------------+
1 row in set (0.00 sec)

まとめ

  • 秒数 → TIMESTAMP:FROM_UNIXTIME(秒数) を使用
  • TIMESTAMP → 秒数:UNIX_TIMESTAMP(日時) を使用
  • 結果はセッションのタイムゾーン設定の影響を受ける点に注意
  1. MySQLのDATE_FORMAT関数でタイムスタンプから月番号を取得する方法

    MySQLでタイムスタンプ型のカラムから「月の番号だけ」を取り出したい場合、DATE_FORMAT() 関数を使うのが便利です。書式指定子 %m を指定することで、01〜12の形式で月番号を文字列として取得できます。この記事では、実際にテーブルを作成し、データを登録して、月番号を抽出するまでの一連の手順をサンプルコード付きで解説します。1. サンプルテーブルの作成まず、TIMESTAMP型のカラムを持つテーブルを作成します。mysql> create table DemoTable1999 ( ArrivalDate timestamp ); Query OK,

  2. PHPで文字列を数値に変換する方法をわかりやすく解説

    PHPで文字列を数値に変換する方法はいくつかあります。最もシンプルなのは、キャスト演算子を使う方法です。ここでは、基本的な変換方法をサンプルコードとともに紹介します。例1:(int)によるキャストで整数に変換<?php     $str = "150";     $num = (int)$str;     echo "Number (Converted from String) = $num"; ?>出力結果上記のコードを実