Игнорирование отметки времени для счетчика в SQL Server 2005

StackOverflow https://stackoverflow.com/questions/1756350

  •  20-09-2019
  •  | 
  •  

Вопрос

У меня возникла проблема с выяснением того, что, как я думал, будет простым запросом.У меня есть таблица с двумя полями (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

Любая помощь в получении временной метки для этого запроса будет очень полезна.Мне бы не хотелось вручную вводить какие-либо диапазоны дат, поскольку этот запрос будет искать в журналах за несколько лет, и мне бы хотелось не вводить 365 диапазонов дат для BETWEEN тип запроса.

Это было полезно?

Решение

А как насчет использования чего-то вроде этого:

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

Другие советы

Попробуй это:

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

Замените Getdate() именем вашего столбца.

Вам также захочется просмотреть предыдущее Вопрос StackOverflow а также это предыдущий вопрос

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top