我正在创建SQL报告以查询来自NetBackup OpsCenter数据库的结果(MySQL?) 我正在学习如何使用SQL,因此请原谅我的无知。我如何过滤昨天(不是最后24小时)并在我的标题中显示昨天的日期?
我在下面创建的报告显示了前一天的失败(与之前的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点,无论何时执行,情况会更好。
哎呀,编辑了几次。 – Tom 2013-04-25 19:19:53
进一步测试之后...会出现我的原始查询工作正常,因为它正在检查所有记录的日期只有(1)不同。 DATEDIFF(day,UtcBigIntToNomTime(endTime),GETDATE())= 1 – user2316707 2013-04-26 16:35:31
好。如果您想使用上午7:00至上午7:00的范围,则可以按照上述方法从日期减去7小时。 – Tom 2013-04-26 16:52:54