首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ISOdate/POSIXct与毫秒

ISOdate/POSIXct与毫秒
EN

Stack Overflow用户
提问于 2015-05-29 20:15:34
回答 1查看 129关注 0票数 0

这更像是一个思考的问题。我一直在研究不同的时间/日期格式,并且我注意到它似乎更倾向于将日期/时间对象存储为具有独特类(如ISOdate或POSIXct)的变量在数据库中(如Mongo、MySQL、postegen)。

我明白为什么在分析数据时会想要转换成这样的格式,但我想知道,当我以这种格式存储在数据库中时,有什么好处呢?

这些格式是否比传统的数字占用更少的空间?我似乎在网上找不到答案。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-05-30 01:21:43

为了参数起见,让我们只讨论一个简单的date类型(只是日期,而不是时间或时区)--比如MySQL中的DATE类型。

假设我们存储了一个2014-12-31字符串。一天后是什么?作为一个人,很容易想出答案2015-01-01,但计算机需要编程这些算法。

虽然这些类型可能公开具有处理日历数学算法的API,但它们最有可能将信息存储为某个开始日期(称为“纪元”)之后的全部天数。因此,2014-12-31实际上存储为类似于16701的东西。计算机可以非常有效地添加1,以获得第二天的16702

这也使得分类变得容易多了。当然,在YYYY-MM-DD格式中,字典排序顺序是保留的,但是排序字符串的处理能力仍然比整数要大得多。此外,当将日期表示为字符串时,可能会对其他区域性进行格式化,例如MM/DD/YYYYDD/MM/YYYY格式,它们不是按字典顺序排序的。如果在表中遍历数千个日期,然后使用WHEREORDER BY子句进行查询,则数据库需要能够有效地对值进行排序,整数排序比分析字符串要快得多。

是的--它们通常占用的物理存储空间也要少得多。

当日期和时间同时存在时,同样的原则也适用,而且您还必须处理时间值的精度(秒、毫秒、纳秒等等)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30538320

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档