在哪里可以获得用于 SQL Server 的简单时区表? [关闭]
Posted
技术标签:
【中文标题】在哪里可以获得用于 SQL Server 的简单时区表? [关闭]【英文标题】:Where can I get a simple table of time zones for use in SQL server? [closed] 【发布时间】:2010-12-07 00:05:43 【问题描述】:我只需要制作一个包含时区的 SQL 表——此时,我唯一需要的是在在线表单上填充一个下拉列表。我正在设想一些简单的东西,包括 ISO 代码、名称、UTC 偏移量,也许还有代表性城市列表。我以为我可以轻松地在网上找到要复制和粘贴的内容,但找不到任何内容。
我被this question 引导到tz database,它是二进制形式的,对于我需要的东西来说似乎有点矫枉过正。或者,我可以从TimeAndDate.com 之类的网站将其拼凑起来,但这似乎比应该做的工作更多。
或者我是不是走错了路——例如我应该从服务器的操作系统获取这些信息吗?
【问题讨论】:
取决于你想要做什么以及为什么知道它很重要。您可以在在线表单上使用 javascripts date-object 来找出用户配置他们的计算机所在的时区(不一定是他们现在所在的位置) 【参考方案1】:我知道这个问题很久以前就被问过了,但是对于任何可能仍然需要它的人,在这里您可以找到时区列表的 sql 数据https://timezonedb.com/download
【讨论】:
【参考方案2】:所有时区列表在这里:
select * from sys.time_zone_info
享受吧!
【讨论】:
仅限 SQL 2016+。【参考方案3】:我更进一步地回答了 marc_s - 这是创建简单时区表的代码和为每个 UTC 记录生成插入的 .net 代码:
--TSQL TO CREATE THE TABLE
CREATE TABLE [dbo].[TimeZones] (
[TimeZoneID] INT IDENTITY (1, 1) NOT NULL,
[DisplayName] VARCHAR(100) NOT NULL,
[StandardName] VARCHAR (100) NOT NULL,
[HasDST] BIT NOT NULL,
[UTCOffset] INT NOT NULL
CONSTRAINT [PK_TimeZones] PRIMARY KEY CLUSTERED ([TimeZoneID] ASC)
);
GO
为了生成插入语句,我使用 Visual Studio 创建了一个默认的 Web .net 项目,并在我粘贴的视图中运行了该项目,然后复制了呈现的代码(请记住从视图源复制它,而不是直接从html页面):
System.Collections.ObjectModel.ReadOnlyCollection<TimeZoneInfo> timeZones = TimeZoneInfo.GetSystemTimeZones();
foreach (TimeZoneInfo timeZone in timeZones)
Response.Write("INSERT INTO TimeZones (DisplayName, StandardName, HasDST, UTCOffset) VALUES ('" + timeZone.DisplayName.Replace("'", "''") + "', '" + timeZone.StandardName.Replace("'", "''") + "', '" + timeZone.SupportsDaylightSavingTime + "', '" + timeZone.BaseUtcOffset + "')" + Environment.NewLine);
希望对你有帮助
【讨论】:
【参考方案4】:从操作系统获取。
如果您已标记此 asp.net,请查看 this example of how to enumerate timezones。
【讨论】:
【参考方案5】:您使用的是 .NET 3.5 吗?您可以在 .NET 3.5 中轻松获取时区列表,然后将该信息(或至少您需要的任何信息)存储在 SQL Server 数据库中。
您可以遍历 .NET 3.5 可用和已知的所有时区,并将相关信息存储到 SQL Server 表中:
ReadOnlyCollection<TimeZoneInfo> timeZones = TimeZoneInfo.GetSystemTimeZones();
foreach (TimeZoneInfo timeZone in timeZones)
// store whatever you need to store to a SQL Server table
马克
【讨论】:
【参考方案6】:你想要一个好的列表来复制/粘贴:http://en.wikipedia.org/wiki/Timezones
【讨论】:
以上是关于在哪里可以获得用于 SQL Server 的简单时区表? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章