与if语句的日期比较

时间:2013-08-29 16:14:11

标签: splunk

如果未在startDateFromstartDateTo变量中指定,我需要使用if语句设置selectedStartDateFromselectedStartDateTo中的日期。

然后我想使用startDateFromstartDateTo来过滤Experiment_Instance_Start_DatestartDateFrom之间startDateTo的条目。

日期比较工作正常,只有当我添加if语句时它才会停止工作。我在这里做错了什么想法?

| eval compare=strptime(Experiment_Instance_Start_Date,"%m/%d/%Y") 
| where compare>=strptime(startDateFrom,"%m/%d/%Y")
| eval compare=strptime(startDateTo,"%m/%d/%Y")
| where compare>=strptime(Experiment_Instance_Start_Date,"%m/%d/%Y")
| eval startDateFrom=if("$selectedStartDateFrom$"="", "01/01/1970", "$selectedStartDateFrom$")
| eval startDateTo=if("$selectedStartDateTo$"="", "01/01/2100", "$selectedStartDateTo$")

1 个答案:

答案 0 :(得分:0)

结果"$selectedStartDateFrom$"=""错了,所以我将其更改为len("$selectedStartDateFrom$")>0。我还需要将if语句移至startDateFromstartDateTo的日期比较之前。同时,01/01/1970的开始日期也不会返回任何结果,因此我将其更改为更晚的日期。

| eval startDateFrom=if(len("$selectedStartDateFrom$")>0, "$selectedStartDateFrom$", "01/01/2000")
| eval startDateTo=if(len("$selectedStartDateTo$")>0, "$selectedStartDateTo$", "01/01/2099")
| eval compare=strptime(Experiment_Instance_Start_Date,"%m/%d/%Y") 
| where compare>=strptime(startDateFrom,"%m/%d/%Y")
| eval compare=strptime(startDateTo,"%m/%d/%Y")
| where compare>=strptime(Experiment_Instance_Start_Date,"%m/%d/%Y")