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:以上函数只是在查询时供调用,实际使用中,相关转化还是在应用层工具类中实现,因为相关转化的性能,以及应用层数据调用都可控)

相关内容