【发布时间】:2019-01-18 15:39:41
【问题描述】:
我正在尝试计算两个不同时间之间的持续时间。这是我的原始查询及其结果:
SELECT
[DJ_NUMBER]
,[PROCESSING_ACTION]
,[TRANSACTION_QTY]
,[MES_MACHINE]
,[ACTION]
,[ACTION_TIME]
,[UNIQUE_ID]
FROM [StagingDB].[dbo].[AFL_MES2O_Interface_Data_arch]
-- where ACTION in ('SetUp Start', 'Run Start','Run End')
WHERE PROCESSING_ACTION = 'Job Status'
Order by DJ_NUMBER asc, ACTION_TIME
[![SourceData][1]][1]
我尝试使用 DateDiff 函数,但遇到了转换问题。我的“运行结束”和“运行开始”是字符串格式:
DATEDIFF(分钟,'运行结束','运行开始') 我需要的是通过 Pivot Operator 获得以下信息: 持续时间 1 = '运行开始' - '设置开始' 持续时间 2 = '运行结束' - '运行开始'
最终输出应该是这样的:
DJ_NUMBER Duration1(分钟) Duration2(分钟) 19483257 0 50 19483258 0 4.00
这是我的数据透视表运算符。这是我的代码:
SELECT DJ_NUMBER
, 'SetUp Start' as [SetUp]
,'Run Start' as [RunStart]
,'Run End' as [RunEnd]
-- ,DATEDIFF(Minute,'Run End','Run Start')
FROM
(
SELECT DJ_NUMBER,ACTION,ACTION_TIME
FROM [StagingDB].[dbo].[AFL_MES2O_Interface_Data_arch]
) As SourceData
PIVOT
(
COUNT( ACTION_TIME)
FOR ACTION IN ([SetUp Start], [Run Start],[Run End])
) AS PIVOTTABLE
Order by DJ_NUMBER asc
[![PivotOperaot Code][4]][4]
任何帮助计算数据透视表中的持续时间将不胜感激。
谢谢你..
【问题讨论】:
-
运行结束日期和运行开始日期的格式是什么?
-
字符串 (VARCHAR)