datetime型をtimestamp型に変換 (MySQLの時間計算)




MySQLでdatetime型をtimestamp型に変換する方法です。

時間を加算・減算する時にDatetime型だと文字列ですので、UNIXTIMEに変換して計算すると楽です。

UNIXTIMEとは、1970年1月1日 00:00:00からの経過秒数のことですね。

32ビットのパソコンでは

2,147,483,647秒を経過した、2038年1月19日3時14分7秒

までしか扱えないようです。

扱える範囲は

「1970年1月1日 00:00:00~2038年1月19日3時14分7秒」です。

UNIX時間またはUNIX時刻(UNIX time or POSIX time)とはコンピューターシステム上で日時を表す単位。UTCでの1970年1月1日真夜中(0時0分0秒)からの経過秒数(閏秒を加味しない)で表される。

UNIX系オペレーティングシステムだけでなく、他の多くのオペレーティングシステムにおいてもこの単位が用いられている。システム内部では32ビットまたは64ビットの符号付整数(signed int)で扱われていることが普通であり、特に32ビットで扱われている場合においては符号付整数が取れる最大値 2147483647 を超える時点で時刻を扱えなくなるという問題がある。これを2038年問題という。
引用:[wikipedia]UNIX時間

datetime型をtimestampに変換

「UNIX_TIMESTAMP」関数を使います。
 

select unix_timestamp(test_date) as test from sample;

timestampをdatetime型に変換

「FROM_UNIXTIME」関数を使います。
 

select from_unixtime(test_date) as test from sample;

人気記事一覧


関連記事一覧

This entry was posted in SQL文 and tagged , , , , . Bookmark the permalink.

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">