0

以下代码在 timewritten <='20130215' 时有效。

  WqlObjectQuery query = new WqlObjectQuery("select * from win32_NTLogEvent where logfile='Application'  and type='information' and **timewritten<='20130214'** and eventcode='1022'");*emphasized text*
        ManagementObjectSearcher searcher = new ManagementObjectSearcher(query);
        foreach(ManagementObject mo in searcher.Get())
        {

            Console.WriteLine("Log file: " + mo["logfile"]);
            Console.WriteLine("Event type: "+mo["type"]);
            Console.WriteLine("Event Code: " + mo["eventcode"]);
            Console.WriteLine("Time generated: " + mo["timegenerated"]);
            Console.WriteLine("Event Source: "+mo["Sourcename"]);
 }

当按如下方式测试 timewritten 时将不起作用,

   timewritten <='20130214' 
   timewritten ='20130214' 

你能告诉我它发生的原因吗?

4

1 回答 1

0

timewritten是一个datetime值——它有一个时间分量。如果您未在转换为 a 的文字中指定时间组件datetime,则会在当天开始时获得午夜。

timewritten ='20130214'会询问14 日午夜发生的任何事件。

timewritten <='20130214'询问在 14 日之前正好在 14 日午夜发生的任何事件。

如果您没有任何符合这些描述的事件,您将不会获得任何结果。

如果,正如我怀疑的那样,你想要所有发生在 14 日的事件,无论何时,你最好timewritten >= '20130214' and timewritten < '20130215'

于 2013-02-14T07:35:02.250 回答