数据库日期类型使用Varchar还是DateTime

毫无疑问 DateTime

数据库日期类型使用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类型,因为既然数据库设计出这个类型还是有它的道理。

posted @ 2022-07-04 15:43  jiuchengi  阅读(1631)  评论(0编辑  收藏  举报