mysql 中 unix_timestamp和from_unixtime 时间戳函数,时间戳和时间之前相互转换
将时间转化为时间戳,将timestamp类型整数转化为 date类型,时间戳转换时间。
1、unix_timestamp ---将时间date类型转换成时间戳timestamp类型
unix_timestamp()参数为空等于当前时间的时间戳
查询当前的date和时间戳,如下
mysql> select now(),unix_timestamp(); +---------------------+------------------+ | now() | unix_timestamp() | +---------------------+------------------+ | 2015-07-20 14:31:59 | 1437373919 | +---------------------+------------------+ 1 row in set
查询该时间的时间戳,等到的时间戳和上面的是相同的,如下
mysql> select unix_timestamp('2015-07-20 14:31:59'); +---------------------------------------+ | unix_timestamp('2015-07-20 14:31:59') | +---------------------------------------+ | 1437373919 | +---------------------------------------+ 1 row in set
2、from_unixtime ---将时间戳格式转换为时间date格式
转换时间戳的格式,如下:
mysql> select from_unixtime(1437373919); +---------------------------+ | from_unixtime(1437373919) | +---------------------------+ | 2015-07-20 14:31:59 | +---------------------------+ 1 row in set
3、时间戳限制说明
目前timestamp 所能表示的范围在 1970年- 2038年之间 。
如果查询小于1970年或大于2038年的时间戳时,会返回null。
mysql> select from_unixtime(0); +---------------------+ | from_unixtime(0) | +---------------------+ | 1970-01-01 08:00:00 | +---------------------+ 1 row in set
mysql> select from_unixtime(-1); +-------------------+ | from_unixtime(-1) | +-------------------+ | NULL | +-------------------+ 1 row in set
mysql> select from_unixtime(2147483647); +---------------------------+ | from_unixtime(2147483647) | +---------------------------+ | 2038-01-19 11:14:07 | +---------------------------+ 1 row in set
mysql> select from_unixtime(2147483648); +---------------------------+ | from_unixtime(2147483648) | +---------------------------+ | NULL | +---------------------------+ 1 row in set
有兴趣的朋友可以深入了解一下,个人觉得不需要太早过于担心。到时候自然会被觉得。
我可以悄悄地告诉你,听说64位的系统可以解决这个问题哦。
本文作者: Liaodeity
本文链接: https://www.jianbaizhan.com/article/231
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 3.0 许可协议。转载请注明出处!