2011-10-03 72 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