Mysql console整數time以及IP查詢相關函數調用

這兩天有個QA在詢問說,數據庫console,查看時間好麻煩,因爲數據庫存儲的時間是BigInt,的確不知道是什麼!

印象中有相關函數轉化,如下:

mysql數據庫存儲時間,一般都會設計BigInt類型,10位,或者13位, 或者更大,其中13位是毫秒,但是在通過Console查詢數據庫時間時,bigint爲整數不方便查看。
mysql提供了對應日期轉化的函數
其中FROM_UNIXTIME函數是對應的大整數轉化爲對應的日期,UNIX_TIMESTAMP函數是逆反操作。
實例如下:
select FROM_UNIXTIME(1344834077);------2012-08-13 13:01:17.0
select UNIX_TIMESTAMP('2012-08-13 13:01:17.0');-----1344834077 

以上爲10位,對於13位,由於mysql不支持毫秒級別,因此需要去掉毫秒對應字段,即最後三位,如:
select FROM_UNIXTIME(1344834077887/1000);-------------2012-08-13 13:01:17.0
其中函數後面還要以跟'%Y %D %M %h:%i:%s %x'爲對應的format日期的格式,輸出想要的日期!
詳細可參考官網:http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_from-unixtime

其中函數表達式可以是對應的字段。


解決了時間,IP存在同樣的問題。(ps:數據庫IP字段存在整數,在數據挖掘以及反垃圾中有很重要的作用)

對應的函數有:

INET_ATON(expr):給出一個作爲字符串的網絡地址的"點地址"(如127.0.0.1)表示,返回一個代表該地址數值的整數

SELECT INET_ATON('192.168.130.55');-----------(3232268855);

INET_NTOA(expr):返回作爲字符串的該地址的表示。

select INET_NTOA(3232268855);---------------------192.168.130.55


以上爲幾個函數,在查詢時還是有點作用,簡單分享下!

(ps:以上函數只是在查詢時供調用,實際使用中,相關轉化還是在應用層工具類中實現,因爲相關轉化的性能,以及應用層數據調用都可控)



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章