加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

sql-server-2008 – 在SQL Server 2008中存储闰秒

发布时间:2020-12-12 16:51:47 所属栏目:MsSql教程 来源:网络整理
导读:这个周末是一个很长的一个,因为在6月30日23:59:59之后会有一个 extra second插入. 我们有一个全天候记录大量数据的系统,其中一个业务规则是,没有两个记录可以记录为同时发生,在一秒钟内. 我们正在使用UTC数据时间以及新的 datetimeoffset 数据类型,但据我所知
这个周末是一个很长的一个,因为在6月30日23:59:59之后会有一个 extra second插入.

我们有一个全天候记录大量数据的系统,其中一个业务规则是,没有两个记录可以记录为同时发生,在一秒钟内.

我们正在使用UTC数据时间以及新的datetimeoffset数据类型,但据我所知,他们不会让您在一分钟内超过60秒.

当然这会造成错误:

select datediff(ss,getdate(),'30-jun-2012 23:59:60')

但是根据UTC神,这将是一个实时的.活动可以在23:59:60进行,但是我们无法记录这个事实.

23:59:59加上一秒钟的抵消仍将被视为7月1日00:00:00.

如何正确记录事件发生在23:59:60的数据库?

解决方法

您不能,因为SQL从Windows获取时间,Windows也不支持闰秒.

Windows通过从上游时间服务器获取新的时间来应用闰秒,并应用通常的调整,就像它是简单的clock drift.

通常这意味着在延长的时间内每秒调整几纳秒.超过24小时,每分钟约一毫秒就会出现.

> Windows时间服务如何处理闰秒:http://support.microsoft.com/kb/909614
> Does the windows FILETIME structure include leap seconds?
> Windows Time Service的工作原理:http://technet.microsoft.com/en-us/library/cc773013(v=ws.10).aspx

基本上,大多数应用程序只是假装没有像闰秒这样的东西.

对于大多数目的,这并不重要.如果您有一个这样的应用程序,操作系统将不会帮助您.您还需要一些特殊的硬件跟踪时间,因为操作系统通常无法保持时间到一秒钟内. Windows默认同步每周或更少的时间,最便宜的PC硬件时钟(或甚至昂贵的服务器)可以轻松漂移几秒钟.

由于您确实关心确切的时间,我假设您指向pool.ntp.org或您的区域子网,并且每天设置w32time进行同步多次.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读