2010-07-22 74 views
5

如何比較印度時間與SQL Server 2008中的世界其他國家時間?SQL Server 2008中的時序比較

意味着我想知道,如果它在印度的午夜凌晨1點會是怎樣通過SQL Server在其他國家時序2008

+0

您可以給出如何使用和/或訪問此信息的上下文嗎?您是否對多個SQL服務器之間的時區差異感興趣,或僅僅是查找地理位置的時間偏移量的方法? – 2010-07-22 07:44:56

回答

0
DECLARE @indianTime DATETIME = GETDATE() 
DECLARE @timeZoneOffset SMALLINT = 3 -- or -3 

SELECT DATEADD(hour, @timeZoneOffset, @indianTime) 

看下MSDN文章:12


但最好使用支持時區的SQL Server 2008和DateTimeOffset類型。

所以,你可以做下一個:

DECLARE @indianTime DATETIME = SYSDATETIMEOFFSET() 
DECLARE @timeZoneOffset NVARCHAR(6) = '-03:00' 

SELECT SWITCHOFFSET(@indianTime, @timeZoneOffset) 
2

看一看SYSUTCDATETIME()

SELECT SYSDATETIME(), SYSUTCDATETIME(); 

隨着UTC時間,你可以很容易地計算時間在任何其他國家。

2

SQL Server 2008使用DateTimeOffset類型來表示具有時區偏移量的DateTime。

您可以使用SWITCHOFFSET函數將值從一個時區轉換爲另一個時區。

要從現有日期值創建特定時區的DateTimeOffset值,請使用TODATETIMEOFFSET

您可以使用SYSDATETIMEOFFSET獲得包括偏移量的當前日期和時間。

最後,您可以使用普通老式的DATEDIFF來比較DateTimeOffset值並獲得它們的差異。

要在印度獲得當前時間並將其切換到另一個時區,您必須知道正確的時間偏移。該聲明可能類似於

DECLARE @localTime DATETIMEOFFSET=SYSDATETIMEOFFSET() 
SELECT @localTime, SWITCHOFFSET(@localTime,'-5:00')