数据库中存储日期的字段类型到底应该用varchar还是datetime

Posted 爱不绝迹

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据库中存储日期的字段类型到底应该用varchar还是datetime相关的知识,希望对你有一定的参考价值。

将数据库中存储时间的数据类型改为varchar(),这时最好让这些时间是数据库中自动生成的(一个没有格式的输入也可能会导致输出错误),因为存储类型为varchar(),所以获取到的值也就被认为是一个字符串,直接将数据库中的时间字符串进行转化(这时那些转化函数是能识别数据库中的时间函数的),客户端的时间格式不再影响转换过程。

不过数据库中存储时间的类型如果为字符型也会带来一些麻烦:

数据库中的时间仅仅是用来显示、查找的,那么影响还不算大,但如果对时间字段进行一些算法如计算星期、DateDiff、DateAdd等,那就麻烦了,尤其实在大型数据查询中转换类型是会影响效率的

总结

数据库中存储日期的字段类型到底应该用varchar还是datetime ?这两种方法各有优势,datetime可以借用sql函数库中运算函数,增加了时间在各种运算上的效率;而varchar类型则可以在字符编码上显出优势。在 存储的时间将来不需要进行大量计算 的前提下,可以考虑选择varchar类型,反之,选择datetime类型。

以上是关于数据库中存储日期的字段类型到底应该用varchar还是datetime的主要内容,如果未能解决你的问题,请参考以下文章

MySQL 中存储时间的最佳实践

在sql中如何将日期类型转换成文本类型,例如2012-09-12 转变成 20120912

mysql如何判断某些日期不合法

如何将包含日期的 varchar 字段类型转换为正确的日期格式

oracle日期字段为varchar2类型,为啥能直接比较

怎么查DB2数据库中,虽是varchar型的2个字段,但是实际存的是日期,俩个字段之间相差7天之内的数据。