我如何过滤昨天(不是最后24小时)并在我的标题中显示昨天的日期?

时间:2013-04-25 18:57:09

标签: mysql sql

我正在创建SQL报告以查询来自NetBackup OpsCenter数据库(MySQL?)的结果 我正在学习如何使用SQL,所以请原谅我的无知。

我在下面创建的报告显示了前一天的失败(与之前的24小时相反,每次运行时都会有所不同)。

SELECT (GETDATE()-1) AS 'Date', statusCode AS STATUS, COUNT(*) AS COUNT

FROM domain_JobArchive

WHERE DATEDIFF(day, UtcBigIntToNomTime(endTime), GETDATE()) =1
and masterServerId=59

GROUP BY statusCode;

我想改变这一点,因此它会报告日期被用作标题......而不是它自己的列。

当前输出: Count of errors for yesterday (non-PCI)

Date STATUS COUNT Apr 24, 2013 11:43:10 AM 288 1 Apr 24, 2013 11:43:10 AM 0 6861 Apr 24, 2013 11:43:10 AM 1 52 Apr 24, 2013 11:43:10 AM 6 63 Apr 24, 2013 11:43:10 AM 50 1 Apr 24, 2013 11:43:10 AM 58 2 Apr 24, 2013 11:43:10 AM 191 1 Total 7 Rows , 1 Page(s)

期望的输出: Count of errors for Apr 24, 2013 (non-PCI)

STATUS COUNT 0 6861 1 52 6 63 50 1 58 2 191 1 288 1 Total 7 Rows , 1 Page(s)

这样,每次执行时 - 它都会提取相同的确切数据。

如果从昨天早上7点到今天早上7点,它会更好......无论何时执行。

1 个答案:

答案 0 :(得分:0)

我认为这应该有效。从您的约会时间减去7小时,然后将其与昨天的日期进行比较。您可以从SELECT语句中删除日期。它不需要。

SELECT statusCode AS STATUS, COUNT(*) AS COUNT

FROM domain_JobArchive

WHERE DATE(DATE_SUB(UtcBigIntToNomTime(endTime), INTERVAL 7 HOUR)) = DATE_SUB(curdate(), INTERVAL 1 DAY)
and masterServerId=59

GROUP BY statusCode;