【发布时间】:2019-07-10 12:25:56
【问题描述】:
我有一个引用列名CycleStartedOn 和CycleEndedOn 的存储过程。这两列都是datetime 数据类型。我的目标是将它们转换为varchar(MAX)。我有变量 @CBFCycleStart 和 @CBFCycleEnd 持有这些值。我已经编译了代码,但我不确定我是否做错了,或者是否有更有效和更好的方法来实现这个目标。这是我正在使用的代码:
DECLARE @CBFCycleStart as varchar(MAX)
DECLARE @CBFCycleEnd as varchar(MAX)
SELECT
@CBFCycleStart = (SELECT TOP 1 CONVERT(varchar(MAX), [CycleStartedOn], 120) FROM [IPEC_P_CIP_TKB_PREFLT] WHERE [CycleComplete] = '1' ORDER BY [CycleStartedOn] DESC)
,@CBFCycleEnd = (SELECT TOP 1 CONVERT(varchar(MAX), [CycleEndedOn], 120) FROM [IPEC_P_CIP_TKB_PREFLT] WHERE [CycleComplete] = '1' ORDER BY [CycleStartedOn] DESC)
DECLARE @tblReports TABLE
(
CBFCycleStart varchar(MAX)
,CBFCycleEnd varchar(MAX)
)
INSERT INTO @tblReports
(
CBFCycleStart
,CBFCycleEnd
)
Values
(
@CBFCycleStart
,@CBFCycleEnd
)
SELECT * FROM @tblReports
END
【问题讨论】:
-
如果目标是 @tblReports 为什么需要中间变量?它们是否在过程中的其他地方使用?
-
我在单独的 SSRS 报告中使用“@CBFCycleStart”和“@CBFCycleEnd”。这些变量有助于我的 SSRS 报告。
标签: sql sql-server reporting-services ssrs-2012