2013-10-27 31 views
2

如何转换当前时间(日期时间)在我的时区到另一个时区,说法国?我环顾四周,但没有找到任何可以帮助我的帖子。我使用SQL Server 2008的sql server将datetime转换为另一个时区?

+2

http://stackoverflow.com/questions/16872007/date-time-conversion-from-timezone-to-timezone-in-sql-server – fan711

+0

@ fan711 - 好的,我我会检查一下,看看它是怎么回事。顺便说一句,其一个SQL Server 2012问题。 – Steam

+0

你有你的当前datetime列的数据类型为DATETIMEOFFSET?还是只是日期时间? –

回答

2

选择转换(日期时间,SWITCHOFFSET(CONVERT(DATETIMEOFFSET,GETDATE()), '+ 05:30'))Date_India,

选择转换(日期时间,SWITCHOFFSET(CONVERT( DATETIMEOFFSET,GETDATE()), '+ 03:30'))Date_Iran

check here

+0

谢谢,但我得到的错误“SWITCHOFFSET”是无法识别的内置函数名称。在ss2000和ss2005上。 – Steam

+0

查询说印度时间= 2013-10-30 18:59:51.060。谷歌表示,2AM月31 – Steam

+1

请变更GETDATE()来** GETUTCDATE()** – Jaider

2

请更换GETUTCDATE()GETDATE(),以获得准确的结果,否则在这种情况下,偏移(5:30)会被添加到当前时间(已经有一些偏移量)并且会导致错误的结果。 00,加入5:50在这个时间将导致GMT + 10:30这是完全错误的偏移:

例如,如果你是在巴基斯坦则GETDATE()为GMT + 5会给你时间。

1

我也同意了正确的SQL查询使用GetUTCDate()你在截图中看到。

select CONVERT(datetime,SWITCHOFFSET(CONVERT(datetimeoffset,GetUTCDate()),'+05:30')) Date_India_withUtcDate 

enter image description here

相关问题