4

.NETDateTime.MinValue是 1/1/0001,但是 Windows Azure 表存储不接受这个值,因为它有一个不同的下限:CloudTableClient.MinSupportedDateTime.

为什么会有这样的差异,是什么让 Azure 团队这样设计它?这只是个问题,我相信这种选择背后存在技术困难。

4

1 回答 1

4

Azure 很可能以不同于DateTime. 数据库引擎的类型系统与任何客户端编程语言的类型系统不同是很常见的。工程经常需要权衡,数据库开发人员通常会做出与其他工具开发人员不同的选择。例如,DateTime使用两位来存储与时区相关的数据,以便在夏令时转换期间支持 UTC 和本地时间之间的往返。在执行比较、散列或序列化时,这两个额外的位会被屏蔽掉。我高度怀疑 Azure 是否会存储此类信息,因为它不需要它,而且只会使查询变得不必要地复杂化。

不幸的是,我不知道任何关于如何DateTime存储在 Azure 中的细节的参考资料,但是这个 MSDN 博客提到了 Azure 类型的有限范围DateTime以及另一种方式,其中 Azure 类型比 .NET 等效项更受限制 -String并且byte[]是有限的到 64KB。

于 2013-04-28T02:24:58.590 回答