存储过程会更改日期时间格式

时间:2014-06-11 11:33:58

标签: sql sql-server datetime stored-procedures

我有一个存储过程接收一些参数,然后返回结果。存储过程使用以下格式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

1 个答案:

答案 0 :(得分:1)

正如我在您的代码中看到的那样,您正在接收datetime参数,并将其存储在varchar列中。您将一个字符串传递给您的过程,该过程被解析为日期时间,然后将formatetd存储在您的表中。然后你用新格式返回日期。

如果将参数类型更改为varchar,则不会解析格式化,因此您将存储并恢复原始值。

如果你真的想要对待日期使用Cast and convert explcitly。使用strign参数,并手动解析格式,决定接受哪种格式以及返回的格式。