Unixタイムスタンプを人間が読める日付に変換するために使用できるMySQL関数はありますか?Unixの時間を保存する1つのフィールドがあり、人間が読める日付用に別のフィールドを追加したい
Unixタイムスタンプを人間が読める日付に変換するために使用できるMySQL関数はありますか?Unixの時間を保存する1つのフィールドがあり、人間が読める日付用に別のフィールドを追加したい
回答:
SELECT
FROM_UNIXTIME(timestamp)
FROM
your_table;
TO_UNIXTIME
が、代わりにUNIX_TIMESTAMP
。
(この記事の執筆時点で)他の回答に欠けていて、直接明らかではないのはfrom_unixtime
、次のような形式を指定する2番目のパラメーターを取ることができることです。
SELECT
from_unixtime(timestamp, '%Y %D %M %H:%i:%s')
FROM
your_table
あなたが探しているのは FROM_UNIXTIME()
mysql cliにすばやくアクセスできる場合の1つのライナーは次のとおりです。
mysql> select convert_tz(from_unixtime(1467095851), 'UTC', 'MST') as 'local time';
+---------------------+
| local time |
+---------------------+
| 2016-06-27 23:37:31 |
+---------------------+
'MST'
希望のタイムゾーンに置き換えます。私はアリゾナに住んでいるため、UTCからMSTに変換されます。
私はこの質問に気付いていないので、mysqlは常にUTCのタイムスタンプフィールドに時間を格納しますが、結果を追加したいローカルタイムゾーンで表示します(phpmyadminなど)。
次のように定義された、last_modifiedフィールドが自動的に更新されます。
`last_modified` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
phpmyadminでそれを見て、それは現地時間にあるように見え、内部的にはUTCです
SET time_zone = '+04:00'; // or '+00:00' to display dates in UTC or 'UTC' if time zones are installed.
SELECT last_modified, UNIX_TIMESTAMP(last_modified), from_unixtime(UNIX_TIMESTAMP(last_modified), '%Y-%c-%d %H:%i:%s'), CONVERT_TZ(last_modified,@@session.time_zone,'+00:00') as UTC FROM `table_name`
どのコンステレーションでも、UNIX_TIMESTAMPおよび「as UTC」は常にUTC時間で表示されます。
最初にtime_zoneを設定せずに、これを2回実行します。