1、存储类型,char的本质是定长字符串,datetime表现是时间类型,本质是int。精度要求相同时,char占用的空间更大。2、char可以存储时间的长度和精度可以完全由程序决定,datetime则由数据库本身决定。
一、用char储存时间与用datetime有什么区别
1、存储类型,char的本质是定长字符串,datetime表现是时间类型,本质是int。精度要求相同时,char占用的空间更大。
2、char可以存储时间的长度和精度可以完全由程序决定,datetime则由数据库本身决定。
3、作为索引的查询性能,datetime的存储类型更短,而且为int类型辨识度更高,在where或join时可以有更好的性能。
所以,datetime更节约空间,有更好的查询性能,如果datetime的长度或精度不满足需求,建议存储bigint类型的时间戳,没有必要将时间类型存为char。
数据库日期类型使用Varchar与DateTime优缺点
1、String 存储比较灵活,你可以存成 2021-1-1 ,也可以存成 2021-01-01 、2021-01.01 随心所欲,如果只是用来展示出来,不用考虑格式
2、String类型的字节数大小远大于datetime等类型,造成空间浪费,datetime本质上是双int型;
3、String类型的日期格式固定,无法像datetime一样调整显示格式,不同格式要进行join,需要两次类型转换;
4、String类型无法处理时区等信息;
5、因为如果用varchar 来存储年月日,那么需要10个字节,而date类型只需4个字节,而datetime类型也只需要8个字节,都小于varchar类型。
6、在进行查找、比较时,由于date和datetime本质上存储在数据库中是一个数字,所以直接通过数值比较效率很高,而varchar进行比较必需要一个字符一个字符比较,所以速度很慢。如果再想深一点,一条记录少了几个字节,关键是如果记录数多,那么总体节省的字节数就会很多,另外,加载到内存后,闸弄的内存更少,同时也只需要更少的IO,查询速度更快
数据库中存储日期的字段类型到底应该用varchar还是datetime ?这两种方法各有优势,datetime可以借用sql函数库中运算函数,增加了时间在各种运算上的效率;而varchar类型则可以在字符编码上显出优势。在 存储的时间将来不需要进行大量计算的前提下,可以考虑选择varchar类型,反之,选择datetime类型。
正常使用时推荐使用DateTime类型,而非Varchar类型,因为既然数据库设计出这个类型还是有它的道理。
延伸阅读:
二、Navicat是什么
Navicat是一套快速、可靠和全面的数据库管理工具,专门用于简化数据库管理和降低管理成本。Navicat图形界面直观,提供简便的管理方法,设计和操作MySQL、MariaDB、SQL Server、Oracle、PostgreSQL和SQLite的数据。
Navicat提供一个直观和设计完善的用户界面,用于创建、修改和管理资料库的所有对象,例如表、视图、函数或过程、索引、触发器和序列。我们的表设计器帮助用户创建和修改数据库的表,让设置高级选项,如关系、限制、触发器和更多。
使用Navicat浏览和修改数据,插入、编辑、删除数据或复制和粘贴记录到数据表形式的数据编辑器,Navicat将运行相应的命令(例如INSERT或UPDATE),免除写复杂的SQL。广泛的数据编辑工具令编辑工作更为方便,例如外键查找、set/enum选择器和记录筛选。