MySQLのFROM_UNIXTIME()関数とは?使い方と使用例をわかりやすく解説
MySQLのFROM_UNIXTIME()関数は、Unixタイムスタンプをもとに日付・日時(DATETIME)の値を返す関数です。戻り値の形式は、関数が使用されるコンテキストによって異なり、文字列コンテキストでは「YYYY-MM-DD HH:MM:SS」、数値コンテキストでは「YYYYMMDDHHMMSS.uuuuuu」のいずれかの形式で出力されます。
FROM_UNIXTIME()関数の基本構文
FROM_UNIXTIME(unix_timestamp, [format])
- unix_timestamp: 変換対象となるUnixタイムスタンプの値(1970年1月1日 00:00:00 UTCからの経過秒数)を指定します。
- format(省略可能): 戻り値の表示形式を指定する書式文字列です。省略した場合はデフォルトの形式で返されます。
基本的な使用例
mysql> Select FROM_UNIXTIME(1555033470); +---------------------------+ | FROM_UNIXTIME(1555033470) | +---------------------------+ | 2019-04-12 07:14:30 | +---------------------------+ 1 row in set (0.00 sec)
この例では、Unixタイムスタンプ「1555033470」が「2019-04-12 07:14:30」という日時形式に変換されて返されています。
format引数を指定した使用例
第2引数に書式文字列を指定すると、任意の形式で日時を取得できます。たとえば、日本で一般的な「年月日」表記への変換も簡単に行えます。
mysql> SELECT FROM_UNIXTIME(1555033470, '%Y年%m月%d日 %H時%i分%s秒'); +----------------------------------------------------------+ | FROM_UNIXTIME(1555033470, '%Y年%m月%d日 %H時%i分%s秒') | +----------------------------------------------------------+ | 2019年04月12日 07時14分30秒 | +----------------------------------------------------------+ 1 row in set (0.00 sec)
まとめ
FROM_UNIXTIME()関数を使えば、Unixタイムスタンプを人が読みやすい日付・日時形式へ簡単に変換できます。ログデータの時刻解析や、タイムスタンプ形式で保存されたデータの表示などに非常に便利です。なお、逆に日付からUnixタイムスタンプを取得したい場合は、UNIX_TIMESTAMP()関数を使用します。
-
MySQLのINSERT IGNOREステートメントとは?重複データの挿入を防ぐ方法
INSERT IGNOREステートメントは、MySQLのテーブルに重複したデータが挿入されるのを防ぐために使用されます。通常のINSERT文の代わりにINSERT IGNOREコマンドを使うと、新規レコードが既存レコードと重複していなければ通常どおり挿入されますが、重複している場合はIGNOREキーワードによってMySQLがそのレコードを黙って破棄し、エラーを発生させません。 基本構文 INSERT IGNORE INTO table_name(...) ここで、table_nameは値を挿入したいテーブルの名前です。カラム名とVALUES句の指定方法は通常のINSERT文と同じです。 動作の
-
MySQLでCHAR()関数の逆の処理を行う方法|ASCII()とORD()の違いを解説
MySQLにおいて、CHAR()関数の逆の働きをするのは ASCII() 関数と ORD() 関数です。CHAR() は数値(文字コード)を文字に変換する関数ですが、ASCII() は引数の文字列の左端の文字に対応する数値(ASCIIコード)を返し、ORD() は左端の文字の文字コードを返します。 ASCII()とORD()の違い どちらも文字から数値への変換を行う点は共通していますが、以下のような違いがあります。 ASCII():シングルバイト文字専用。マルチバイト文字を渡すと警告が出て64を返します。 ORD():マルチバイト文字にも対応しており、最初のバイトの値に基づいて計算された文字