1

我正在使用托管在美国的 sql server 2005。很快我们将把数据库搬到欧洲。我想更新数据库中的日期以考虑时区差异。有没有好的方法来做到这一点?还是只是循环日期并添加时区偏移量的情况?

4

2 回答 2

3

它真的需要改变,因为它是物理移动的吗?如果您支持全球应用程序,我会将我的所有日​​期/时间信息存储在 GMT 中并在客户端转换为本地。

于 2009-02-01T06:07:35.970 回答
2

我认为您应该将数据库中的日期/时间保存在一个恒定的时区中,它可以是 GMT(因为将其转换为其他时区非常简单)或服务器的当前时区(如果不是 GMT)。

后一个选项有意义的唯一原因是您使用 CURDATE 函数从数据库中插入/过滤记录,否则 GMT 是最佳选择。

您可以尝试将 DATEDIFF 与 DATEADD 一起使用,但由于 DST,这并不总是给出准确的时间(在某些情况下会延迟 1 小时)。

SQL Server 2005 中存在关于时区转换的已知限制,请参阅以下链接了解更多信息: http ://connect.microsoft.com/SQLServer/feedback/ViewFeedback.aspx?FeedbackID=308563

于 2009-02-01T06:17:17.277 回答