忽略SQL Server 2005中计数的时间戳

时间:2009-11-18 14:25:26

标签: sql-server-2005 datetime-format

我有一个问题,弄清楚我认为是一个简单的查询。 我有一个包含两个字段的表(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个日期范围。

2 个答案:

答案 0 :(得分:2)

使用这样的东西怎么样:

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))  

答案 1 :(得分:0)

试试这个:

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

用您的列名替换Getdate()。

您还希望查看此前StackOverflow question以及此previous question