Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么日期时间在数据存储中占8字节,例如MySQL、c#_Mysql_Datetime_Data Storage - Fatal编程技术网

为什么日期时间在数据存储中占8字节,例如MySQL、c#

为什么日期时间在数据存储中占8字节,例如MySQL、c#,mysql,datetime,data-storage,Mysql,Datetime,Data Storage,作为我的标题,为什么日期时间需要8个字节,日期需要3个字节,时间需要3个字节?时间需要3加上小数秒的可变数量。MySQL日期时间现在需要5个字节,加上相同的变量量。日期/时间字段的实际值取决于两个因素: 代表性。这通常是自的数量和支持的日期范围,即MySQL的“1000-01-01”到“9999-12-31” 存储结构限制,即我们可能需要使用多个字节来存储数据(即我们无法轻松地使用2.36字节来存储数据…) 关于,范围为“1000-01-01”至“9999-12-31”,或9000年(给予或

作为我的标题,为什么日期时间需要8个字节,日期需要3个字节,时间需要3个字节?

时间需要3加上小数秒的可变数量。MySQL日期时间现在需要5个字节,加上相同的变量量。

日期/时间字段的实际值取决于两个因素:

  • 代表性。这通常是自的数量和支持的日期范围,即MySQL的“1000-01-01”到“9999-12-31”
  • 存储结构限制,即我们可能需要使用多个字节来存储数据(即我们无法轻松地使用2.36字节来存储数据…)
关于,范围为“1000-01-01”至“9999-12-31”,或9000年(给予或接受),我们需要一天的粒度。因此,我们需要存储从纪元(1000-01-01)到9000*365=3285000的天数。由于数字是0-3285000,我们不能使用2个字节(最大65536个),我们使用3个字节(最大16777216个)。是的,这超出了我们的需要,但我们不能有一个字节的分数

关于,范围为“-838:59:59”到“838:59:59”(它可以用来表示持续时间/间隔,而不仅仅是一天中的时间),大约为6040800秒。同样,我们需要3个字节来容纳它


关于,范围为“1000-01-01 00:00:00.000000”到“9999-12-31 23:59:59.99999”。这里的精度有很大的不同,它现在可以容纳9000年,粒度为0.000001秒!这就是为什么我们需要8个字节来存储日期时间。

这一问题的答案实际上取决于日期和时间的表示方式。通常,计算机将时间存储为从一个历元开始的秒数(通常是1970年1月1日00:00)。一个数据库需要能够存储从BC路到CE路的任意日期,以及它们如何表示这些日期非常依赖于实现(并且数据库之间可能有所不同)。