为什么编程语言以及数据库要从1970年1月1日开始计算时

转载 2012年07月27日 23:35:40
今天一时兴起想起了在SQL Server中使用DateTime.MinValue插入时间时报错的问题,原因就在于数据库的最小时间和.Net里的最小时间不一致导致的,网上查阅了些资料,找到如下结果
Net Framewrok 中,
DateTime.MinValue           => 0001/01/01 00:00:00
SqlDateTime.MinValue.Value  => 1753/01/01 00:00:00
SQL Server 2005 中,
DateTime 最小值              => 1753/01/01 00:00:00
SmallDateTime 最小值         => 1900/01/01 00:00:00
Net Framewrok 中,   
DateTime.MaxValue            => 9999/12/31 23:59:59.999 
SqlDateTime.MaxValue.Value   => 9999/12/31 23:59:59.997
SQL Server 2005 中, 
DateTime 最大值               => 9999/12/31 23:59:59.997 
SmallDateTime 最大值    =>2079.6.6 

 所以需要在数据库插入最小时间时不能使用DateTime.MinValue,需要使用

SqlDateTime.MinValue.Value。  

 

好了到现在SQL Server数据库时间问题解决了,突然又想起了系统中有个啥1970年1月1日的时间。那这个时间又是啥来来历呢,怀着好奇宝宝的心理我有在网上查阅了一番得到如下解释:

1.可以简单的这样认为:UNIX系统认为1970年1月1日0点是时间纪元,所以我们常说的UNIX时间戳是以1970年1月1日0点为计时起点时间的。这个解释是懒人最爱^_^

 

2.这个比较科学
最初计算机操作系统是32位,而时间也是用32位表示。32位能表示的最大值是2147483647。另外1年365天的总秒数是31536000,2147483647/31536000 = 68.1,也就是说32位能表示的最长时间是68年,而实际上到2038年01月19日03时14分07秒,便会到达最大时间,过了这个时间点,所有32位操作系统时间便会变为10000000 00000000 00000000 00000000,也就是1901年12月13日20时45分52秒,这样便会出现时间回归的现象,很多软件便会运行异常了。

到这里,我想问题的答案已经出来了:因为用32位来表示时间的最大间隔是68年,而最早出现的UNIX操作系统考虑到计算机产生的年代和应用的时限综合取了1970年1月1日作为UNIX TIME的纪元时间(开始时间),至于时间回归的现象相信随着64为操作系统的产生逐渐得到解决,因为用64位操作系统可以表示到292,277,026,596年12月4日15时30分08秒,相信我们的N代子孙,哪怕地球毁灭那天都不用愁不够用了,因为这个时间已经是千亿年以后了。

转自:http://www.cnblogs.com/lzrabbit/archive/2011/06/09/2075949.html

为什么编程语言以及数据库要从1970年1月1日开始计算时间

转载[http://blog.chinaunix.net/space.php?uid=22301296&do=blog&cuid=2050726] 今天在看Python  API时,看到...
  • YNLH888
  • YNLH888
  • 2012年04月21日 15:57
  • 205

为什么计算机时间和众多编程语言要从1970年1月1日开始算起

今天我们来讨论一个非常有意思的事,那就是你知道为什么计算机时间和众多的编程语言的时间都要从1970年1月1日开始算起呢,时间计时起点到底为什么是 1970年1月1号呢?我想大家应该都知道,但是我估计大...

为什么计算机时间和众多编程语言要从1970年1月1日开始算起

今天我们来讨论一个非常有意思的事,那就是你知道为什么计算机时间和众多的编程语言的时间都要从1970年1月1日开始算起呢,时间计时起点到底为什么是 1970年1月1号呢?我想大家应该都知道,但是我估计大...

为什么计算机时间和众多编程语言要从1970年1月1日开始算起

你知道为什么计算机时间和众多的编程语言的时间都要从1970年1月1日开始算起呢,时间计时起点到底为什么是 1970年1月1号呢?我想大家应该都知道,但是我估计大家几乎大部分都没有想过这个问题。我们就一...

为什么计算机时间要从1970年1月1日开始算起

导读   今天我们来讨论一个非常有意思的事,那就是你知道为什么计算机时间和众多的编程语言的时间都要从1970年1月1日开始算起呢,时间计时起点到底为什么是 1970年1月1号呢?我...

unix时间戳 为什么计算机时间要从1970年1月1日开始算起?

今天一时兴起想起了在SQL Server中使用DateTime.MinValue插入时间时报错的问题,原因就在于数据库的最小时间和.Net里的最小时间不一致导致的,网上查阅了些资料,找到如下结果 Ne...

为什么计算机时间要从1970年1月1日开始算起

导读 今天我们来讨论一个非常有意思的事,那就是你知道为什么计算机时间和众多的编程语言的时间都要从1970年1月1日开始算起呢,时间计时起点到底为什么是 1970年1月1号呢?我想大家应该都知道,但是...

为什么计算机时间要从1970年1月1日开始算起?

很有趣的内容。 为什么计算机时间要从1970年1月1日开始算起? 日期:2011-11-04    阅读:311   分类:综合信息 今天一时兴起想起了在SQL Server中使...
  • wide288
  • wide288
  • 2013年01月29日 10:56
  • 1445

Java为什么计算时间从1970年1月1日开始

Date date = new Date(0); System.out.println(date); 打印出来的结果:  Thu Jan 01 08:00:00 CST 1970也是1970 年 1...

java为什么计算时间从1970年1月1日开始

今天在看Python  API时,看到time模块: The epoch is the point where the time starts. On January 1st of that y...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:为什么编程语言以及数据库要从1970年1月1日开始计算时
举报原因:
原因补充:

(最多只允许输入30个字)