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