SYSTEM DEVELOPMENT

STUDY GROUP

unixtime

UNIX時間

UNIX時間(ユニックスじかん)またはUNIX時刻(ユニックスじこく、UNIX time(ユニックスタイム)、POSIX time(ポジックスタイム))とはコンピューターシステム上での時刻表現の一種。UNIXエポック、すなわち協定世界時 (UTC) での1970年1月1日午前0時0分0秒から形式的な経過秒数(すなわち、実質的な経過秒数から、その間に挿入された閏秒を引き、削除された閏秒を加えたもの)として表される。GPS時刻などとは異なり、大多数のシステムでは、本当の経過秒数を表すものではない。
UNIX系のオペレーティングシステム(データ型はtime_t)だけでなく、他の多くのオペレーティングシステムにおいてもこの表現方法が用いられている。システム内部では32ビットまたは64ビットの符号付整数 (signed int) で扱われていることが普通である。ここで、以前は多かった32ビットで扱われている場合で、符号付きであった場合、その最大値 2,147,483,647 を超えると負の値になり、正しく時刻を扱えなくなるという問題がある。これを2038年問題という。

by Wikipedia
unixtimeをSQLで変換する場合は通常,以下のように記述すれば簡単に変換できます。
select from_unixtime(1504034383)
2017-08-29 19:19:43
ただし、システムによってはそのシステムのデータベースで定義されている場合があり、 その場合、from_unixtime()で取得しても時間がずれてしまいます。
いろいろ調べた結果、システムのデータベースのファイルにconvert_tz(from_unixtime(カラム名), @@session.time_zone, ‘+00:00’)とあり、これを当てはめてみたところ、bingo!
時間てなんですかネ…
悩みはつきません。

menu