Sql Server在欧洲获取当前日期时间

时间:2013-11-21 16:11:11

标签: sql sql-server datetime

SELECT GETDATE()

SQL Server中的上述查询将返回美国的当前日期和时间,因为服务器位于美国。如何修改它以检索欧洲的当前日期和时间?

2 个答案:

答案 0 :(得分:4)

试试这个:设置@Offset =

  • 0代表格林威治标准时间(GMT) - 英国,
  • 1 for Central European Time(CET)-Netherlands,Germnany,France 等
  • 2为东欧时间(EET)捷克斯洛伐克,匈牙利等

    Set @Offset = 0, 1, 2 ...
    Declare @offset tinyInt = 0
    Select GetUtcDate() + @offset/24.0

答案 1 :(得分:0)

将SwitchDateTimeOffset函数与datetimeoffset数据类型一起使用(需要SQL Server 2008或更高版本)。

演示查询:

CREATE TABLE TimeZone (ID int identity,
                    LocalTime datetimeoffset);
INSERT INTO TimeZone values ('2008-05-21 17:50:01.1234567 -08:00'),
                           ('2008-05-21 18:50:01.1234567 -08:00');  
SELECT * FROM TimeZone;
SELECT ID, SWITCHOFFSET(LocalTime,'+01:00') [time for new time zone]
   FROM TimeZone;
DROP TABLE TimeZone;

在您的方案中,这将成为:

SELECT SWITCHOFFSET(SYSDATETIMEOFFSET(),'+01:00')

正如p.campbell所指出的,你仍然需要决定哪个时区代表“欧洲”。