1.unix_timestamp
将时间转化为时间戳。(date 类型数据转换成 timestamp 形式整数)
没传时间参数则取当前时间的时间戳
mysql> select unix_timestamp();
+------------------+| unix_timestamp() |+------------------+| 1361586358 |+------------------+1 row in set (0.01 sec)
mysql> select unix_timestamp('2013-01-01 10:10:10');
+---------------------------------------+| unix_timestamp('2013-01-01 10:10:10') |+---------------------------------------+| 1357006210 |+---------------------------------------+1 row in set (0.00 sec)
2.from_unixtime
将timestamp 形式整数 转化为 date类型
mysql> select from_unixtime(1355272360);+---------------------------+| from_unixtime(1355272360) |+---------------------------+| 2012-12-12 08:32:40 |+---------------------------+1 row in set (0.00 sec)当然也可以指定输出的时间格式:
mysql> select from_unixtime(1355272360,'%Y%m%d');
+------------------------------------+| from_unixtime(1355272360,'%Y%m%d') |+------------------------------------+| 20121212 |+------------------------------------+
3.关于mysql 时间戳的限制
目前timestamp 所能表示的范围在 1970 - 2038之间 。
超过这个范围 得到的时间将会溢出 得到的时间是null.
mysql> select from_unixtime(0);
+---------------------+| from_unixtime(0) |+---------------------+| 1970-01-01 08:00:00 |+---------------------+mysql> select from_unixtime(2147483647);
+---------------------------+| from_unixtime(2147483647) |+---------------------------+| 2038-01-19 11:14:07 |+---------------------------+1 row in set (0.00 sec)