【问题标题】:Stored procedure changes the datetime format [closed]存储过程更改日期时间格式 [关闭]
【发布时间】:2014-06-11 11:33:57
【问题描述】:

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

【问题讨论】:

  • 问题毫无意义。 DateTime 没有格式。您似乎将表示与演示混淆了。
  • 日期是日期它看起来如何它只对显示值的视图(应用程序)很重要?
  • @Dalorzo:我已经说过了! :)
  • @Mitch Wheat 好吧,我很困惑,你建议我怎么做?
  • @Ivo 确保从存储过程中返回一个日期类型并让 c# 处理它的格式

标签: sql sql-server datetime stored-procedures


【解决方案1】:

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

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

如果您真的想将其视为日期,请明确使用Cast and convert。使用 strign 参数,并手动解析格式,决定您接受哪种格式以及返回哪种格式。

【讨论】:

  • 我将其标记为答案,因为它回答了问题,但我决定在 c# 中进行转换并且不使用上述建议的方法。
猜你喜欢
  • 2015-08-29
  • 2012-07-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-05-30
  • 2020-08-23
  • 2013-06-29
  • 2017-05-13
相关资源
最近更新 更多