2012-03-13 103 views
0

为什么我没有得到时间上午或下午为什么不显示日期上午或下午

DECLARE @inputDate varchar(25) 
SELECT @inputDate = '3/13/2012 13:00' 

-- Declare the return variable here 
DECLARE @Result DATETIME 
DECLARE @toReturn NVARCHAR(25) 

-- Add the T-SQL statements to compute the return value here 
SET @inputDate = REPLACE(@inputDate, '24:00', '00:00') 
SET @Result = null 
SET @toReturn = null 
IF (ISDATE(@inputDate)=1) 
BEGIN 
    DECLARE @utcOffset int 
    SET @utcOffset = -(DATEDIFF(HH, GETUTCDATE(), GETDATE())) 
    SET @Result = DATEADD(HH, @utcOffset, @inputDate) 
    SET @toReturn = CONVERT(NVARCHAR, @Result, 101) 
END 

-- Return the result of the function 
SELECT @toReturn 

只返回日期部分?

+0

只要你知道,并不是所有的时区从UTC的偏移小时 - 你可能需要使用分钟或更小的东西。另外,你是否真的想保持这个字符串?日期/时间/时间戳最好留在这些类型中。如果'@ utcOffset'为'0',你可能还想考虑早点返回。 – 2012-03-13 16:22:43

回答

0

在CONVERT运算符中尝试其他日期格式而不是101。

0

因为您的最终转换使用只包含日期的格式 - 没有时间分量。

尝试以下,而不是:

SET @toReturn = CONVERT(NVARCHAR, @Result, 121) 
相关问题