データベース管理の領域では、多くの場合、エポック番号を人間が読める日付に変換する必要があります。エポック番号は、定義されたエポック以降の時点を表し、MySQL などのデータベース システムに一時データを保存するためによく使用されます。
1389422614485 などのエポック番号がある仮定のシナリオを考えてみましょう。特定の時点。この値のデータ型は varchar であり、これをわかりやすい日付形式に変換したいと考えています。
詳細な解決策
MySQL でこの変換を実行するには、次の手順を実行します。数学関数と from_unixtime() 関数の組み合わせを活用する必要があります:
<code class="sql">mysql> select from_unixtime(floor(1389422614485/1000));</code>
説明
この例では、from_unixtime() 関数を使用して変換します。通常、エポックからのミリ秒を表すエポック番号を日付文字列に変換します。エポック番号はミリ秒の精度を持つように見えるため、floor(1389422614485/1000) を使用してエポックからの秒数に変換します。これは、from_unixtime() が期待する入力です。
出力
+------------------------------------------+ | from_unixtime(floor(1389422614485/1000)) | +------------------------------------------+ | 2014-01-11 12:13:34 | +------------------------------------------+
出力には、指定されたエポック番号に対応する人間が判読できる日付が、'YYYY-MM-DD HH:MM:SS' の形式で表示されます。
MySQL 8.0 以降の更新
MySQL バージョン 8.0 以降、from_unixtime() 関数でミリ秒を扱う場合、floor 関数は必要なくなりました。ミリ秒単位のエポック番号を引数として直接指定できます:
<code class="sql">mysql> select from_unixtime(1594838230234/1000);</code>
これにより、次の出力が生成されます:
+------------------------------------------+ | from_unixtime(1594838230234/1000) | +------------------------------------------+ | 2020-07-15 18:37:10.2340 | +------------------------------------------+
この洗練されたバージョンのクエリは、ナノ秒の精度もサポートするようになりました。 .
以上がMySQL でエポック番号を人間が判読できる日付に変換するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。