为什么不检索指定的日期事件?

时间:2013-02-14 07:21:56

标签: c# .net datetime wmi

以下代码适用于写入时间< =' 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 <='20130214' 
   timewritten ='20130214' 
你可以告诉我它发生的原因吗。

1 个答案:

答案 0 :(得分:0)

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

timewritten ='20130214'会要求在14日午夜发生的任何事件。

timewritten <='20130214'要求在 14日之前发生的任何事件,或者在14日的正好午夜发生的事件。

如果您没有任何与这些描述相符的活动,您将无法获得任何结果。

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