技术论坛

 WinCC V7.4 SP1 报警控件的MsgFilterSQL属性中,关于时间设置问题

返回主题列表
作者 主题
城外之人
版主

经验值:18435
发帖数:8684
精华帖:18
楼主    2017-10-10 09:29:40
主题: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'"


无论成与败,无论甜与苦,我还是我。
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。