我已经问过一个类似的问题,但我没有得到我想要的答案。(这是我的错!)
我有一个网站,其 SQLServer 2008R2 数据库位于一个国家(例如美国)。
许多来自不同国家的客户访问该网站。所有 datetime 数据类型都是 datetimeoffset。日期时间在美国使用 sql server datetime 保存。
我应该怎么做才能根据客户端日期时区转换日期,我是否需要在表中保存不同的时区才能将日期时间从数据库转换到客户端?
我已经问过一个类似的问题,但我没有得到我想要的答案。(这是我的错!)
我有一个网站,其 SQLServer 2008R2 数据库位于一个国家(例如美国)。
许多来自不同国家的客户访问该网站。所有 datetime 数据类型都是 datetimeoffset。日期时间在美国使用 sql server datetime 保存。
我应该怎么做才能根据客户端日期时区转换日期,我是否需要在表中保存不同的时区才能将日期时间从数据库转换到客户端?
我会将数据存储为 UTC(事实上,我要求我们的服务器都设置为 UTC 时间而没有 DST 调整 - 这不仅可以防止每年两次的间隙和重叠,而且还可以使作业调度等更加可预测并且可靠)。
您可以轻松地将 UTC 数据转换为任何其他时区。您可以使用日历表来正确获取偏移量并考虑 DST 之类的事情。了解如何将 sql server 2005 express 数据库中的所有日期时间列与数据转换为 UTC,在 n 层应用程序中的何处设置 UTC 日期时间值:表示层、域或数据库?,如何处理每条聊天消息的时区和http://web.archive.org/web/20070611150639/http://sqlserver2000.databases.aspfaq.com/why-should-i-consider-using-an-辅助日历-table.html
重要提示:DATETIMEOFFSET 不支持 DST!