【发布时间】:2023-03-05 15:22:01
【问题描述】:
我在某个对象上有一个 TimeZoneInfo 属性,我需要将其保存到 Microsoft SQL Server 2008 数据库中。请问我应该使用什么类型的数据库字段类型?
如果有帮助,我也在使用我的 Visual Studio 2010 附带的 Entity Framework 4。
【问题讨论】:
标签: .net sql-server-2008 timezone
我在某个对象上有一个 TimeZoneInfo 属性,我需要将其保存到 Microsoft SQL Server 2008 数据库中。请问我应该使用什么类型的数据库字段类型?
如果有帮助,我也在使用我的 Visual Studio 2010 附带的 Entity Framework 4。
【问题讨论】:
标签: .net sql-server-2008 timezone
您应该使用TimeZoneInfo 的ID - 这样您就可以使用TimeZoneInfo.FindSystemTimeZoneById 再次检索原始区域。
请注意,虽然在某些 情况下将日期和时间存储为DateTimeOffset 是一种有效的替代方法,但这并不足以满足所有情况。例如,假设您想存储每周下午 3 点开会的信息。将单个实例存储为DateTimeOffset 不会告诉您下周会议的时间 - 因为您不知道夏令时是否已更改。 (在这种情况下,您可能希望存储一天中的当地时间、这是每周一次的会议以及一周中的哪一天。不幸的是,重复规则很快就会变得复杂。)
【讨论】: