| 作者 | 主题 |
|---|---|
|
城外之人 版主
经验值:18435 发帖数:8684 精华帖:18 |
楼主
主题:WinCC V7.4 SP1 报警控件的MsgFilterSQL属性中,关于时间设置问题
环境:Windows 7 64-bit,WinCC V7.4 SP1 按照官方文档,报警控件自身属性“MsgFilterSQL”,可以过滤报警消息;也可以通过工具栏按钮"选择对话框",添加过滤条件来过滤消息。 在我的实际使用中,当设置DateTime时,遇到了意想不到的问题,比如: objAlarm1.MsgFilterSQL = "DATETIME >= '2017-10-05 14:56:54'" 报警控件立马为空(所有报警消息都没有了,注:在WinCC V6.2下是正常的)。 但用:objAlarm1.MsgFilterSQL = "MsgNr>=10 AND MsgNr<=100" 过滤正确。 打开报警控件工具栏按钮:选择对话框,发现在时间设置值中,是系统初始时间:1899-12-30,也就是说, '2017-10-05 14:56:54'这个时间值根本就没有赋置成功。 在上面的对话框中,通过手动设置时间值,可以正确显示。 那问题出在哪儿呢? 通过测试,将正确显示的MsgFilterSQL属性的内容显示出来,发现:时间值中带有毫秒部分,即: DATETIME >= '2017-10-05 14:56:54.000' 猛然醒悟:时间格式中必须包含毫秒,于是,重新设置时间部分,一切就正常了。 说明:在MsgFilterSQL属性中,时间需要带毫秒部分,哪怕只是日期部分都得带毫秒; 但在WinCC OLE DB 中查询时,不带毫秒是可以查询的: strSQL = "ALARMVIEWEX:SELECT * FROM AlgViewEXEnu WHERE DateTime>='2017-10-05 00:00:00' AND DateTime<='2017-10-08 23:59:59'"
无论成与败,无论甜与苦,我还是我。
|