mysql使用合适的存储类型存储数据

       在mysql中,存储时间可以使用varchar类型,也可以使用datetime,timestamp,或者是date类型。但是还可以使用int类型,只需要通过一些函数转换即可。

      例如建立下面一个表:

CREATE TABLE test(
	id INT AUTO_INCREMENT NOT NULL,
	timsstr INT,
	PRIMARY KEY(id)
);

timsstr表示存储时间,但是却用int类型,那么插入数据的时候。。。

这样是不行的:

INSERT INTO test(timsstr) VALUES(2014-06-01 13:12:00);

可以这样来,使用  UNIX_TIMESTAMP()  函数:

INSERT INTO test(timsstr) VALUES(UNIX_TIMESTAMP('2014-06-01 13:12:00'));

查询一下数据:

SELECT * FROM test;

这时间格式有点奇怪,看不懂,这是可以用  FROM_UNIXTIME()  函数解析:

SELECT id,FROM_UNIXTIME(timsstr) FROM test;

这样就可以了。。。

================================================================================================

另外,存储ip地址的时候,一般是用varchar类型的,这里我们可以用   INET_ATON()   存和   INET_NTOA()   来取:

如下,先建一个表:

CREATE TABLE ipSave(
	id INT AUTO_INCREMENT NOT NULL,
	ipaddress BIGINT,
	PRIMARY KEY(id)
);

先插入一条数据:

INSERT INTO ipSave(ipaddress) VALUES(INET_ATON('192.168.1.2'));

一般查询结果是这样的,未解析,数据不对应:

SELECT * FROM ipSave;

利用 INET_NTOA() 函数解析后是这样的:

SELECT id,INET_NTOA(ipaddress) FROM ipSave;

这样就ok了。。。

当然了,这样做的目的是为了节省内存。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值