刚开始使用SQL,所以这里可能有一个非常简单的答案,但我无法弄清楚我需要从谷歌搜索中做些什么。
我正在使用的数据库中有一个名为dt_char_sp的存储过程 - 简单地说,参数是作为整数的日期和时间,存储过程很好地格式化它们。我希望它的工作原理如下:
EXEC dt_char_sp 20130416, 024356
go
输出:
04/06/2013 02:43:56
除了输出没有发生!我看到有一个变量声明为“@datetime datetime = NULL OUTPUT”,最终@datetime变量填充了格式化的字符串,但我想知道是否有办法获取此输出变量?
答案 0 :(得分:1)
您需要使用Select statement。
在查询结束时,只需选择所需的输出变量,如下所示:
SELECT @datetime
另一种方法是使用Output Parameter。宣布如下:
@datetime DateTime OUTPUT;
答案 1 :(得分:1)
如果没有实际看到存储过程,我们无法确定,但听起来它使用的是输出参数。
DECLARE @retval As DATETIME
EXEC dt_char_sp 20130416, 024356, @datetime=@retval OUTPUT
PRINT @retval
go
从客户端代码中也可以使用相同的方法。
答案 2 :(得分:0)
你确定你正在做一些事情来获得回报价值吗? 如果没有,您可以选择变量
select @datetime
答案 3 :(得分:-1)
请不要为SQL Server带来格式化字符串之类的蹩脚内容。这对于那种事情来说太重要了。我最近看到了很多,这是一个坏习惯。
请使用您的客户端格式化工具...
类似(对于UNIX类型的日期)
DateTime dt = new DateTime("1/1/1970").AddDays(myIntDate);
Console.Writeln(dt.ToString("mm/dd/yyyy"));
这有很多原因 - 性能是最重要的。您已经拥有了所需的所有数据,当您真的不需要任何东西时,没有理由往往非常昂贵的服务器。所有计算机都可以格式化日期,不要使用服务器。
顺便说一句,这是正确的答案。我不认为Stack Overflow应该成为一个地方,如果有人问如何跳下一座桥,我们只是告诉他们。当有人问如何使用错误的方法完成某些事情时,我们应该告诉他们正确的方法。