我已经问了一个类似的问题,但我没有得到我想要的答案。 (这是我的错!)
我的网站上有一个SQLServer 2008R2数据库,位于一个国家/地区(例如美国)。
来自不同国家/地区的许多客户都可以访问此网站。所有datetime数据类型都是datetimeoffset。使用sql server datetime在美国保存日期时间。
如何根据客户日期时间区域转换日期,是否需要在表格中保存不同的时区,以便能够将日期时间从数据库转换为客户端?
答案 0 :(得分:1)
我会将数据存储为UTC(实际上我要求我们的服务器都设置为UTC时间而不进行DST调整 - 这不仅可以防止每年两次的间隙和重叠,而且还可以进行作业调度等。更加可预测和可靠)。
您可以轻松地将UTC数据转换为任何其他时区。您可以使用日历表来正确获取偏移量并考虑DST之类的事情。请参阅how to convert all datetime columns in a sql server 2005 express database with data to UTC,Where to set a UTC datetime value in n-tier application: Presentation Layer, Domain, or Database?,How do I handle the timezones for every Chat message和http://web.archive.org/web/20070611150639/http://sqlserver2000.databases.aspfaq.com/why-should-i-consider-using-an-auxiliary-calendar-table.html
重要提示:DATETIMEOFFSET不支持DST!