2011-10-19

MySQLのUNIX_TIMESTAMP() と FROM_UNIXTIME()

とりあえず、MySQLのバージョンね。

$ mysql --version
mysql Ver 14.14 Distrib 5.1.58, for debian-linux-gnu (x86_64) using readline 6.2


で、ログインしてやってみた。

$ mysql -u root -p
mysql> select from_unixtime(unix_timestamp('1970-01-01 00:00:00')) from dual;
+------------------------------------------------------+
| from_unixtime(unix_timestamp('1970-01-01 00:00:00')) |
+------------------------------------------------------+
| 1970-01-01 09:00:00 |
+------------------------------------------------------+
1 row in set (0.00 sec)

mysql> select from_unixtime(unix_timestamp('1970-01-01 09:00:00')) from dual;
+------------------------------------------------------+
| from_unixtime(unix_timestamp('1970-01-01 09:00:00')) |
+------------------------------------------------------+
| 1970-01-01 09:00:00 |
+------------------------------------------------------+
1 row in set (0.01 sec)


ん?1970-01-01 00:00:00 も 1970-01-01 09:00:00 も結果は同じ?

ちょっと待て。

mysql> select unix_timestamp('1970-01-01 00:00:00') from dual;
+---------------------------------------+
| unix_timestamp('1970-01-01 00:00:00') |
+---------------------------------------+
|                                     0 |
+---------------------------------------+
1 row in set (0.00 sec)

mysql> select unix_timestamp('1970-01-01 09:00:00') from dual;
+---------------------------------------+
| unix_timestamp('1970-01-01 09:00:00') |
+---------------------------------------+
|                                     0 |
+---------------------------------------+
1 row in set (0.01 sec)


両方とも「0」かよ。

じゃこれはどうかな?

mysql> select from_unixtime(0) from dual;
+---------------------+
| from_unixtime(0)    |
+---------------------+
| 1970-01-01 09:00:00 |
+---------------------+
1 row in set (0.00 sec)


マニュアルはどうなってる?

>UNIX_TIMESTAMP() に範囲外の日付を渡すと、0 が戻されます。

あぁ、そういうことね。1970-01-01 00:00:00 は「範囲外」ってことね。

納得。

0 件のコメント:

コメントを投稿

結局は可愛い我が子

以前の会社の話。 俺がいたころ、「当時の社長」の息子が転職してきた。 「あー、結局は同族会社か」 と思ったし、まあ、ほかのヤツもそう思ったよね。 その時は否定した「当時の社長」。 でも、なーんか含みを持たせた逃げの言い訳してたなー。 その器があればとか、 周りが認めてくれればとか...