我正在使用SQL Server 2008。服务器位于印度。我想存储用户的登录和注销时间。我可以在SQL Server中轻松做到这一点。
现在我们有来自不同国家的客户/管理员将检查这些登录/注销时间。他们希望在各自的时区使用这些时间。
另一种情况是我的客户从一个国家/地区旅行到另一个国家/地区,因此日志时间应根据时区自动更新。
所以我的理解是我必须存储时区信息以及客户的日期时间。这样我就可以使用TimeZoneInfo::ConvertTime
方法转换为不同的时区。
我可以为我的客户提供在注册时保存时区的选项。
但我的疑问是,如果我的客户更改了他的国家/地区,他们是否需要手动更改时区,或者是否有任何方法可以自动检测时区。检查系统时区是否可行?
或者无论如何存储时间戳可以帮助我?
使用 datetimeoffset
.我的公司业务遍及欧洲、一些亚洲国家和北美。对应用程序进行编码,以便它将当前计算机的时区设置传递到数据库。当用户旅行时,Windows 可以在检测到用户的地理位置时更新时区信息。我从来不用担心夏令时(想象一下在两大洲处理夏令时的乐趣)。
由于存储了时区信息,因此我可以将其转换为所需的任何时区。或者,读取数据的应用程序可以使用本地计算机时区执行此操作。