如何比較印度時間與SQL Server 2008中的世界其他國家時間?SQL Server 2008中的時序比較
意味着我想知道,如果它在印度的午夜凌晨1點會是怎樣通過SQL Server在其他國家時序2008
如何比較印度時間與SQL Server 2008中的世界其他國家時間?SQL Server 2008中的時序比較
意味着我想知道,如果它在印度的午夜凌晨1點會是怎樣通過SQL Server在其他國家時序2008
DECLARE @indianTime DATETIME = GETDATE()
DECLARE @timeZoneOffset SMALLINT = 3 -- or -3
SELECT DATEADD(hour, @timeZoneOffset, @indianTime)
但最好使用支持時區的SQL Server 2008和DateTimeOffset
類型。
所以,你可以做下一個:
DECLARE @indianTime DATETIME = SYSDATETIMEOFFSET()
DECLARE @timeZoneOffset NVARCHAR(6) = '-03:00'
SELECT SWITCHOFFSET(@indianTime, @timeZoneOffset)
看一看SYSUTCDATETIME()
:
SELECT SYSDATETIME(), SYSUTCDATETIME();
隨着UTC時間,你可以很容易地計算時間在任何其他國家。
SQL Server 2008使用DateTimeOffset類型來表示具有時區偏移量的DateTime。
您可以使用SWITCHOFFSET函數將值從一個時區轉換爲另一個時區。
要從現有日期值創建特定時區的DateTimeOffset值,請使用TODATETIMEOFFSET。
您可以使用SYSDATETIMEOFFSET獲得包括偏移量的當前日期和時間。
最後,您可以使用普通老式的DATEDIFF來比較DateTimeOffset值並獲得它們的差異。
要在印度獲得當前時間並將其切換到另一個時區,您必須知道正確的時間偏移。該聲明可能類似於
DECLARE @localTime DATETIMEOFFSET=SYSDATETIMEOFFSET()
SELECT @localTime, SWITCHOFFSET(@localTime,'-5:00')
您可以給出如何使用和/或訪問此信息的上下文嗎?您是否對多個SQL服務器之間的時區差異感興趣,或僅僅是查找地理位置的時間偏移量的方法? – 2010-07-22 07:44:56