为什么没有日期显示上午或下午

时间:2012-03-13 15:12:57

标签: sql tsql

为什么我没有时间上午或下午

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

仅返回日期部分?

4 个答案:

答案 0 :(得分:4)

您需要将CONVERT(NVARCHAR, @Result, 101)更改为其他内容。 101返回mm / dd / yyyy格式。有关详情,请参阅此处:http://msdn.microsoft.com/en-us/library/ms187928.aspx

答案 1 :(得分:1)

您在上一个转换语句中使用101,这只是日期。

在这里查看其他选项。 CAST and CONVERT (Transact-SQL)

答案 2 :(得分:0)

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

答案 3 :(得分:0)

因为您的最终转化使用的格式只包含日期 - 没有时间组件。

请尝试以下操作:

SET @toReturn = CONVERT(NVARCHAR, @Result, 121)