博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
mysql使用合适的存储类型存储数据
阅读量:2347 次
发布时间:2019-05-10

本文共 986 字,大约阅读时间需要 3 分钟。

       在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了。。。

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

转载地址:http://zgtvb.baihongyu.com/

你可能感兴趣的文章
postgresql基本操作
查看>>
SQLAlchemy使用
查看>>
word设置标题
查看>>
git之HEAD
查看>>
基于2.6内核的Init_task进程之一
查看>>
C代码插入汇编
查看>>
C++基础知识-之强指针(韦东山视频学习)
查看>>
C++之Android弱指针
查看>>
C++基础知识之vector和[=] [&] [=,&]拷贝
查看>>
Init中的next_token()函数
查看>>
STL之MAP和Vector
查看>>
智能指针 unique_ptr
查看>>
Init.rc配置文件Action字段解析
查看>>
uml问题解决
查看>>
c中求二维数组的行数和列数
查看>>
三目运算符跟赋值运算符的计算顺序
查看>>
【CUDA并行程序设计系列(4)】CUDA内存
查看>>
CPU、GPU、CUDA,CuDNN 简介
查看>>
U-boot如何引导Linux内核启动?
查看>>
程序各个段text,data,bss,stack,heap
查看>>