SQL 查询迄今为止的秒数 (Ssms12)
SQL query seconds to date (Ssms12)
在 fount Thad 的 Whosebug 站点上 select CONVERT(CHAR(10), DATEADD(second, MAX(60), 0), 108)
将导致 00:01:00(这是真的 btw :-))
现在我想将其集成到以下查询中(对于 Ssms12):
SELECT Run.TaskName,history.runtime
,CONVERT(CHAR(10), DATEADD(second, MAX(history.runtime), 0), 108)
FROM dbo.history
INNER JOIN Run
ON dbo.history.TaskID=Run.TaskID
无论我尝试什么,我都无法在上面的示例中使用它,有人知道如何解决这个问题吗?
错误: 列 'Run.TaskName' 在 select 列表中无效,因为它未包含在聚合函数或 GROUP BY 子句中。
您必须按未使用聚合函数的其他列进行分组:
SELECT Run.TaskName,history.runtime,
CONVERT(CHAR(10), DATEADD(second, history.runtime, 0), 108)
FROM dbo.history
INNER JOIN Run ON dbo.history.TaskID=Run.TaskID
您在运行时使用 MAX,因此您可以这样做:
SELECT Run.TaskName,MAX(history.runtime) runtime,
CONVERT(CHAR(10), DATEADD(second, MAX(history.runtime), 0), 108)
FROM dbo.history
INNER JOIN Run ON dbo.history.TaskID=Run.TaskID
GROUP BY Run.TaskName
这意味着您要么必须从运行时删除 MAX,要么必须对其余列使用分组依据。
确保您对 运行 table 具有必要的权限,如果 table 存在且您具有读取该文件的必要权限,则使用下面的完全限定 table tables
SELECT Run.TaskName,history.runtime
,CONVERT(CHAR(10), DATEADD(second, MAX(history.runtime), 0), 108)
FROM dbo.history
INNER JOIN dbo.Run
ON dbo.history.TaskID=dbo.Run.TaskID
您很可能不需要 MAX。 select CONVERT(CHAR(10), DATEADD(second, 60, 0), 108)
可以,所以
SELECT Run.TaskName,history.runtime
,CONVERT(CHAR(10), DATEADD(second, history.runtime, 0), 108)
FROM dbo.history
INNER JOIN dbo.Run
ON dbo.history.TaskID=dbo.Run.TaskID
在 fount Thad 的 Whosebug 站点上 select CONVERT(CHAR(10), DATEADD(second, MAX(60), 0), 108)
将导致 00:01:00(这是真的 btw :-))
现在我想将其集成到以下查询中(对于 Ssms12):
SELECT Run.TaskName,history.runtime
,CONVERT(CHAR(10), DATEADD(second, MAX(history.runtime), 0), 108)
FROM dbo.history
INNER JOIN Run
ON dbo.history.TaskID=Run.TaskID
无论我尝试什么,我都无法在上面的示例中使用它,有人知道如何解决这个问题吗?
错误: 列 'Run.TaskName' 在 select 列表中无效,因为它未包含在聚合函数或 GROUP BY 子句中。
您必须按未使用聚合函数的其他列进行分组:
SELECT Run.TaskName,history.runtime,
CONVERT(CHAR(10), DATEADD(second, history.runtime, 0), 108)
FROM dbo.history
INNER JOIN Run ON dbo.history.TaskID=Run.TaskID
您在运行时使用 MAX,因此您可以这样做:
SELECT Run.TaskName,MAX(history.runtime) runtime,
CONVERT(CHAR(10), DATEADD(second, MAX(history.runtime), 0), 108)
FROM dbo.history
INNER JOIN Run ON dbo.history.TaskID=Run.TaskID
GROUP BY Run.TaskName
这意味着您要么必须从运行时删除 MAX,要么必须对其余列使用分组依据。
确保您对 运行 table 具有必要的权限,如果 table 存在且您具有读取该文件的必要权限,则使用下面的完全限定 table tables
SELECT Run.TaskName,history.runtime
,CONVERT(CHAR(10), DATEADD(second, MAX(history.runtime), 0), 108)
FROM dbo.history
INNER JOIN dbo.Run
ON dbo.history.TaskID=dbo.Run.TaskID
您很可能不需要 MAX。 select CONVERT(CHAR(10), DATEADD(second, 60, 0), 108)
可以,所以
SELECT Run.TaskName,history.runtime
,CONVERT(CHAR(10), DATEADD(second, history.runtime, 0), 108)
FROM dbo.history
INNER JOIN dbo.Run
ON dbo.history.TaskID=dbo.Run.TaskID