2012-03-13 83 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) 
相關問題