使用Datetimeoffset的最佳实践

时间:2013-11-14 14:12:41

标签: sql-server

我已经问了一个类似的问题,但我没有得到我想要的答案。 (这是我的错!)

我的网站上有一个SQLServer 2008R2数据库,位于一个国家/地区(例如美国)。

来自不同国家/地区的许多客户都可以访问此网站。所有datetime数据类型都是datetimeoffset。使用sql server datetime在美国保存日期时间。

如何根据客户日期时间区域转换日期,是否需要在表格中保存不同的时区,以便能够将日期时间从数据库转换为客户端?

1 个答案:

答案 0 :(得分:1)

我会将数据存储为UTC(实际上我要求我们的服务器都设置为UTC时间而不进行DST调整 - 这不仅可以防止每年两次的间隙和重叠,而且还可以进行作业调度等。更加可预测和可靠)。

您可以轻松地将UTC数据转换为任何其他时区。您可以使用日历表来正确获取偏移量并考虑DST之类的事情。请参阅how to convert all datetime columns in a sql server 2005 express database with data to UTCWhere to set a UTC datetime value in n-tier application: Presentation Layer, Domain, or Database?How do I handle the timezones for every Chat messagehttp://web.archive.org/web/20070611150639/http://sqlserver2000.databases.aspfaq.com/why-should-i-consider-using-an-auxiliary-calendar-table.html

重要提示:DATETIMEOFFSET不支持DST!