请教下,数据库存储日期这样的字段的时候是用字符串好呢还是日期类型,各有什么优缺点和应用场景,多谢

2012-03-26 10:53:02 +08:00
 avatasia
oracle里貌似用字符串较多,sql server感觉用datetime方便点。
8141 次点击
所在节点    问与答
7 条回复
Livid
2012-03-26 10:56:16 +08:00
存整数吧。

这样做各种范围查询的时候很简单,也很快。
avichen
2012-03-26 11:03:17 +08:00
如果用得很频繁的,直接用整数yyyymmdd速度超快。
avatasia
2012-03-26 11:20:42 +08:00
@Livid @avichen 多谢,我在mongo里用的就是整数,不过感觉用了索引后,整数和字符串差距不算很大,而且对于mongo的objectId,本身就是时间戳。
ElmerZhang
2012-03-26 14:07:35 +08:00
MongoDB的话用Date,MySQL的话用TimeStamp,它们在实际存储和查询的时候其实都是整数,只是以可读的方式表示出来。字符串效率肯定是最差的,没感觉到差距是因为你数据量不够大。
lackrp
2012-03-26 14:35:05 +08:00
如果数据库原生支持日期类型的话,应该使用原生的日期类型,效率和功能上肯定都有很高的保证;如果不支持日期类型的话,就用长整型(Long)或者大整数(BIGINT)。字符串不是一个很高效的数据类型,占用空间较大,数值之间compare比较慢,可能唯一的优势就是展示比较直接。
所以,大概是 字符串 < 日期类型 ≈ 整数类型。不过,在一般情况下,这不会是系统效率的瓶颈。
avatasia
2012-03-26 14:36:52 +08:00
@lackrp 金融一般用字符串,8583协议的影响
lackrp
2012-03-26 14:44:08 +08:00
@avatasia 长知识了,多谢

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/30569

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX