微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

SQL Server作业/计划-美国与英国夏令时调整

如何解决SQL Server作业/计划-美国与英国夏令时调整

实际上,您似乎已经提到了两个可行的解决方案:在该时区询问服务器或存储关键日期列表。关于下面为什么在第一个链接上的共鸣。您可以实现自己的功能(必须存储日期列表或要求服务器提供偏移量)。或者,您可以获得时区信息的公共域列表(如下面的第二个链接所示)。还有一些Web服务将返回偏移量。Oracle实现了该时区数据库,以在指定的时区之间进行转换,因此,如果您既已支持这两个时区,则可以做到这一点。

一个C#实现,您可以在第三个链接中包装CLR函数

解决方法

SQL Server作业/计划-美国与英国夏令时调整

我们有一台基于英国的服务器,需要在16:30(美国中部时间-这可能很奇怪,但这是由于某些数据的可用性)运行SQL Agent
Job。通常这不会造成问题,因为英国和美国之间的时差为6个小时,因此我们将工作安排在22:30进行。

但是,由于英美两国在3月和11月的不同时间调整时钟以节省夏令时,因此英美之间的时差为5个小时,为2周。

我想实现一种方法,其中SQL Server可以识别时差的这种变化,然后使用诸如sp_update_schedule之类的方法重新计划其自身的作业。

我要采取的一种方法是,在美国服务器上获取当前时间戳,然后将其与当前英国时间进行比较。如果时差为5小时,则将作业重新计划为21:30,如果时差为6小时,则将作业重新计划为22:30。

但是无论如何,可以建议另一种解决方案,也许不涉及在美国服务器上获取当前时间戳,并且理想情况下不必在表中存储夏令时调整日期列表。更有活力吗?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。