我有一个存储过程接收一些参数,然后返回结果。存储过程使用以下格式DateTime
接收'2012.01.06'
参数。然后我只想返回这个DateTime
参数。它工作正常,但返回的DateTime
格式为Jan 6 2012 12:00AM
。我想改变它,使其看起来与首先传递参数的方式相同。
以下是我的存储过程的一部分:
CREATE PROCEDURE [dbo].[myTestProcedure]
@myTestDate dateTime
AS
BEGIN
SET NOCOUNT ON;
DECLARE @TempTestData TABLE
(
Name$ VARCHAR(50),
Value$ VARCHAR (50)
)
INSERT INTO @TempTestData SELECT 'Date1', @fromDate
SELECT * from @TempTestData
END
GO
答案 0 :(得分:1)
正如我在您的代码中看到的那样,您正在接收datetime参数,并将其存储在varchar列中。您将一个字符串传递给您的过程,该过程被解析为日期时间,然后将formatetd存储在您的表中。然后你用新格式返回日期。
如果将参数类型更改为varchar,则不会解析格式化,因此您将存储并恢复原始值。
如果你真的想要对待日期使用Cast and convert explcitly。使用strign参数,并手动解析格式,决定接受哪种格式以及返回的格式。