日期:2014-05-18  浏览次数:20635 次

急求:返回指定时间的UTC时间
请教一下
select   GETUTCDATE()是返回当前系统的UTC时间.  
那有没有办法返回指定日期时间的UTC时间哦?    
最好有一个这样的方法:
select   GETUTCDATE( '2006-01-01   12:01:10.123 ')



------解决方案--------------------
select convert(varchar(30), getdate(), 120)
------解决方案--------------------
--try

select convert(datetime, '2006-01-01 12:01:10.123 ', 121)
------解决方案--------------------
select dateadd(hh,datediff(hh,GETDATE(),GETUTCDATE()), '2006-01-01 12:01:10.123 ')
------解决方案--------------------

--其中时间串,替换为你的时间字段或变量即可。

select dateadd(hh,datediff(hh,getdate(),GETUTCDATE()), '2007-02-06 18:00:06 ')


declare @date datetime

set @date = '2007-02-06 18:00:06 '

select dateadd(hh,datediff(hh,getdate(),GETUTCDATE()),@date)

------解决方案--------------------

--创建自定义函数,注意:自定义函数中不能直接使用getdate()、getUTCDate()函数,必须作为参数传入

create function GetUTCDate2(@now datetime, @UTC datetime, @inputPara datetime)
RETURNS datetime AS
BEGIN
declare @return datetime

set @return = dateadd(hh,datediff(hh,@now,@UTC),@inputPara)

RETURN @return
END
go


select dbo.GetUTCDate2(getdate(),GETUTCDATE(), '2007-05-20 18:06:09 ')


drop function GetUTCDate2
go