0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

MySQLでミリ秒のUNIX時間を日時に変更してタイムゾーンも変更

Last updated at Posted at 2020-09-30

目的

MySQLに保存しているミリ秒のUNIX時間のデータを日時の書式に変更したい。
ついでにタイムゾーンも変更したい。

AppStore 領収書の Latest_receipt_info 内の expires_date_ms のようなデータなど。
※UNIXエポック(1970年1月1日午前0時0分0秒)からの経過ミリ秒で表現されている

想定テーブル

id user_id expires_date_ms
1 1 1601371107000
4 2 1601379940000

SQL例

SELECT 
  id, user_id,
  CONVERT_TZ(FROM_UNIXTIME(expires_date_ms / 1000, '%Y-%m-%d %H:%i:%s'), '+00:00', '+09:00') AS expires_date_ms
FROM
  hogehoges;

解説

項目 説明
expires_date_ms / 1000 ミリ秒を秒に変更
FROM_UNIXTIME(unix_timestamp, format) UNIX時間を所定の書式に変更する
CONVERT_TZ(dt, from_tz , to_tz) タイムゾーンを変更

その他

Latest_receipt_info 内にはちゃんと日時で表現されている expires_date がある。

参考

MySQLでUNIXタイムスタンプと日付を相互変換するメモ
MySQLでミリ秒をDATE型に変換するSQL文
レスポンスボディ.Latest _receipt _info

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?