当前位置: 首页 > 面试题库 >

如何在SQL Server 2005中转换时区?

锺离昂然
2023-03-14
问题内容

我所有的时间都在UTC时区,现在我需要以某种方式将其转换为用户时区(我也将其存储在数据库中,并使用Windows时区的ID)。

如何在SQL Server 2005中做到这一点?

编辑

所以我试图做那个扩展的存储过程,但是用Timezoneinfo我得到了这个错误

部署错误SQL01268:.Net SqlClient数据提供程序:消息6503,级别16,状态12,行1程序集’system.core,version
= 3.5.0.0,culture = neutral,publickeytoken = b77a5c561934e089。’
在SQL目录中找不到。执行批处理时发生错误。

如果我把那条线拿出来,我可以部署它。任何想法如何解决这个问题?


问题答案:

由于SQL Server对此不提供开箱即用的支持,因此您可以考虑编写一个使用.Net
TimeZoneInfo对象
的.Net
dll存储过程,该对象考虑了包括DST在内的所有规则。此类允许您将时间也从一个区域转换为另一个区域。我希望这有帮助。

DateTime hwTime = new DateTime(2007, 02, 01, 08, 00, 00);
try
{
   TimeZoneInfo hwZone = TimeZoneInfo.FindSystemTimeZoneById("Hawaiian Standard Time");
   Console.WriteLine("{0} {1} is {2} local time.", 
           hwTime, 
           hwZone.IsDaylightSavingTime(hwTime) ? hwZone.DaylightName : hwZone.StandardName, 
           TimeZoneInfo.ConvertTime(hwTime, hwZone, TimeZoneInfo.Local));
}
catch (TimeZoneNotFoundException)
{
   Console.WriteLine("The registry does not define the Hawaiian Standard Time zone.");
}                           
catch (InvalidTimeZoneException)
{
   Console.WriteLine("Registry data on the Hawaiian STandard Time zone has been corrupted.");
}


 类似资料:
  • 问题内容: 我对Java中的时区感到好奇。我想从设备获取UTC时间(以毫秒为单位)并发送到服务器。当服务器向用户显示时间时,服务器会将其转换为本地时区。我系统中的时区是澳大利亚/悉尼(UTC + 11:00),测试时区时,我得到的结果如下: 输出: 我以为我可以为c2安排13/01/2014 00:12:00,因为UTC时间比我的时间晚11个小时。日历不能按我期望的方式工作吗? 您的帮助将不胜感激

  • 我对Java的时区很好奇。我想从设备上获取以毫秒为单位的UTC时间并发送到服务器。服务器在向用户显示时间时会将其转换为本地时区。我系统中的时区是澳大利亚/悉尼(UTC 11:00),当我测试时区时,我得到了下面的结果: 输出: 我以为我可以有 13/01/2014 00:12:00 对于 c2,因为 UTC 时间比我的晚 11 小时。日历没有按照我预期的方式工作吗? 非常感谢你的帮助。 添加z以显

  • 问题内容: 我是Java的新手,想知道double转换为int cast如何工作吗?我知道,只需将低32位转换为int就很容易了,但是将double(64位)转换为int(32位)呢?来自二进制的double中的那64位是Double- precision浮点格式(Mantissa),那么它如何在内部转换为int? 问题答案: 所有这些都记录在JLS的5.1.3节中。 第一步,将浮点数转换为lon

  • 问题内容: 给定任意时间偏移,如何创建一个代表该时间偏移的可用对象? 以下代码使用偏移量解析时间,但随后不返回任何信息: 游乐场:https : //play.golang.org/p/j_E28qJ8Vgy 基本上,我有一些带有时间偏移量的时间数据,但是没有位置数据,我想创建一个对象以确保记录GMT偏移量。然后能够输出相对于最终用户实际位置的时间偏移量。 问题答案: 用: 然后设置到此位置: 试

  • 然后开始正确地调用转换器。这向我提出了一个问题,即何时应该命名转换器(通过属性),以及何时告诉他们转换器应该与哪个类一起使用(与属性一起使用)就足够了。在使用PrimeFaces时,我从来不需要命名任何转换器,只是针对这个特定的组件。不同的元件对转换器有不同的需求吗?还是我只是把转换器的概念搞错了?

  • 我正试图从JSONB转换为Google GSON JSONElement。我使用的转换器来自:https://www.jooq.org/doc/3.11/manual/code-generation/custom-data-type-bindings/ TableImpl中的列: