3

我在弄清楚我认为是一个简单的查询时遇到了问题。我有一个包含两个字段(EntryDateTime、Message)的表,您可以猜到它们会记录带有时间日期戳的监控应用程序的特定消息。

我希望每天统计一种类型的所有消息,但是戳记的时间部分(虽然其他所有内容都需要)给我带来了问题。

我想做类似的事情,

SELECT COUNT(Message)
FROM DBName.dbo.TableName
WHERE Message = 'LoginFailed'
GROUP BY EntryDateTime

我正在寻找的输出类似于

2009-06-26, 142

2009-06-27, 259

2009-06-28, 57

当然,这给我的消息输出更像

2009-06-26 00:01:01, 11

2009-06026 00:01:02, 12

任何帮助获取此查询的时间戳都会非常有帮助。我不想手动输入任何日期范围,因为此查询将搜索一年的日志记录,并且我不想为BETWEEN类型查询输入 365 个日期范围。

4

2 回答 2

2

What about using something like this:

SELECT COUNT (Message), CONVERT(DATETIME, CONVERT(CHAR(10), EntryDateTime, 101))  
FROM DBName.dbo.TableName  
WHERE Message = 'LoginFailed'  
GROUP BY CONVERT(DATETIME, CONVERT(CHAR(10), EntryDateTime, 101))  
于 2009-11-18T14:36:22.693 回答
0

Try this:

SELECT DATEADD(dd, DATEDIFF(d, 0, Getdate()), 0)

Replace Getdate() with your Column Name.

You'll also want to look at this previous StackOverflow question and also this previous question

于 2009-11-18T14:38:52.220 回答