mysql資料庫時間戳函式

軍說網事發表於2015-09-30

1.關於mysql時間戳的限制

目前timestamp所能表示的範圍在1970  -  2038之間。超過這個範圍得到的時間將會溢位得到的時間是null.眼看2038已不遠,在設計資料庫的時候,也會考慮把timestamp換成其他型別來定義。

mysql> select from_unixtime(0);
+---------------------+
| from_unixtime(0)    |
+---------------------+
| 1970-01-01 08:00:00 |
+---------------------+

mysql> select from_unixtime(2147483650);
+---------------------------+
| from_unixtime(2147483650) |
+---------------------------+
| 2038-01-19 11:14:10       |
+---------------------------+
1 row in set (0.00 sec)

 

2.unix_timestamp

將時間轉化為時間戳。(date型別資料轉換成timestamp形式整數)

沒傳時間引數則取當前時間的時間戳

mysql>select unix_timestamp();
+------------------+
| unix_timestamp() |
+------------------+
|       1443577432 |
+------------------+
1 row in set (0.01 sec)

 

mysql>select unix_timestamp('2015-10-01 10:10:10');
+---------------------------------------+
| unix_timestamp('2015-10-01 10:10:10')
+---------------------------------------+
|                           1443665410 |
+---------------------------------------+
1 row in set (0.00 sec)

 

3.from_unixtime

timestamp形式整數轉化為 date型別


mysql>  select from_unixtime(1439072360);
+---------------------------+
| from_unixtime(1439072360) |
+---------------------------+
| 2015-08-09 06:19:20      |
+---------------------------+
1 row in set (0.00 sec)

當然也可以指定輸出的時間格式:

mysql> select from_unixtime(1439072360,'%Y%m%d');
+------------------------------------+
| from_unixtime(1439072360,'%Y%m%d') |
+------------------------------------+
| 20150809                         |

+------------------------------------+



相關文章