3

単純なクエリだと思ったものを理解するのに問題があります。2つのフィールド(EntryDateTime、Message)を含むテーブルがあります。これは、推測できるように、監視アプリの日付スタンプが付いた特定のメッセージをログに記録します。

1日あたりの種類のすべてのメッセージの数を取得したいと思っていますが、スタンプの時間部分(他のすべてに必要な場合)がここで問題を引き起こしています。

私は次のようなことをしたいと思っていました、

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

出力として私が探しているのは次のようなものです

2009年6月26日、142

2009-06-27、259

2009-06-28、57

もちろん、これは私にもっと似たようなメッセージの出力を与えています

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

2009-06026 00:01:02、12

このクエリのタイムスタンプを取得するためのヘルプは非常に役立ちます。このクエリは1年分のログを検索するため、手動で日付範囲を入力する必要はありませんBETWEEN。タイプクエリには365の日付範囲を入力しないでください。

4

2 に答える 2

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))  
于 2009-11-18T14:36:22.693 に答える
0

これを試して:

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

Getdate()を列名に置き換えます。

また、この前のStackOverflowの質問とこの前の質問も確認する必要があります

于 2009-11-18T14:38:52.220 に答える