2011-10-03 69 views
1

我的服務器在美國或其他一些時區託管。是否有選項可以在印度標準時間獲取SQL Server中的當前日期。在SQL Server中的IST中的日期

select getdate() 

我應該寫什麼來獲得印度(或其他國家)的當前時間。

回答

7

應該使用DATETIMEOFFSET數據類型,其包括時區,並且SWITCHOFFSET方法時區之間切換。另外:獲得當前時間,使用的SYSDATETIMEOFFSET()代替GETDATE()

-- gets current date/time in the current timezone 
SELECT 
SYSDATETIMEOFFSET() 

-- get the current date/time in your preferred timezone +05:30 UTC being Indian Std. Time 
SELECT 
SWITCHOFFSET(SYSDATETIMEOFFSET(), '+05:30') 
+0

嗨@mar​​c_s你可以讓我知道如何從結果中刪除時區偏移值。現在我將它作爲10/3/2011 4:07:31 PM +05:30。我不需要+05:30結果 –

+2

@AkhilKNambiar:只需使用CAST(SWITCHOFFSET(SYSDATETIMEOFFSET(),'+05:30')AS DATETIME)'那就應該這樣做 –

0

根據this link印度的時間是從美國9:30 hours ahead。因此,爲了獲得印度時間,您需要在美國時間添加9.30 hours

SELECT DATEADD(hh,9.30,getdate()) 
+0

在SQL Server 2008中,這將是更可取的使用'DATETIMEOFFSET'其中包括時區,而'SWITCHOFFSET'切換時區之間的日期/時間... –

+0

與9.30的日期加載不起作用。它應該是n與570其中n是分鐘和9 * 60 + 30 = 540 –

+0

@marc_s:感謝您的信息,它很好學習新東西! – NaveenBhat