Splunk Search

about date and time form

crazyeva
Contributor

There are "date-time" fields other than _time in events:
...^2012/06/30 23:58:20^2012/06/30 23:58:20...
we pre extracted them as "firsttime","lasttime"
we want the results where (fisttime-lasttime)<300s, how could we approach that?
I have tried search as:
| rex field=firsttime "(?\d{2}/\d{2}/\d{2})\s(?\d{2}:\d{2}:\d{2})"
| rex field=lasttime "(?\d{2}/\d{2}/\d{2})\s(?\d{2}:\d{2}:\d{2})"
| convert dur2sec(ftime), dur2sec(ltime)
| where fdate=ldate | eval duration=ltime-ftime |where duration<300 |
but this is not impeccable.

Edit:
Hi
This solution so cool
But it seems not willing to work, I dont know what I did wrong:

sourcetype="..." | fields FirstOccurrence LastOccurrence
| eval firsttime_epoch=strptime(FirstOccurrence,"%Y/%m/%d %H:%M:%S")
| eval lasttime_epoch=strptime(LastOccurrence,"%Y/%m/%d %H:%M:%S")
| table FirstOccurrence firsttime_epoch There are values in FirstOccurrence but firsttime_epoch not
one of samples:
1/10/11 12:08:58

(just now)

Tags (1)
0 Karma
1 Solution

Ayn
Legend

A better way would probably be to use eval's strptime function to convert the timestamp strings to epoch values and then use these in your comparison.

... | eval firsttime_epoch=strptime(firsttime,"%Y/%m/%d %H:%M:%S")
| eval lasttime_epoch=strptime(lasttime,"%Y/%m/%d %H:%M:%S")
| where lasttime_epoch-firsttime_epoch<300

View solution in original post

0 Karma

crazyeva
Contributor

Thank you again
| eval firsttime_epoch=strptime(FirstOccurrence,"%Y-%m-%d %H:%M:%S")
| eval lasttime_epoch=strptime(LastOccurrence,"%Y-%m-%d %H:%M:%S")
| eval firsttime_epoch2=strptime(FirstOccurrence,"%m/%d/%y %H:%M:%S")
| eval lasttime_epoch2=strptime(LastOccurrence,"%m/%d/%y %H:%M:%S")
| where lasttime_epoch-firsttime_epoch<300 OR lasttime_epoch2-firsttime_epoch2<300
then it works

0 Karma

Ayn
Legend

The sample you provided has another date format than what you posted in earlier events, so if that's the format you're working with you should change the strptime format string to reflect that.

0 Karma

Ayn
Legend

A better way would probably be to use eval's strptime function to convert the timestamp strings to epoch values and then use these in your comparison.

... | eval firsttime_epoch=strptime(firsttime,"%Y/%m/%d %H:%M:%S")
| eval lasttime_epoch=strptime(lasttime,"%Y/%m/%d %H:%M:%S")
| where lasttime_epoch-firsttime_epoch<300
0 Karma

crazyeva
Contributor

Thank you very much !
That is professional

0 Karma
Got questions? Get answers!

Join the Splunk Community Slack to learn, troubleshoot, and make connections with fellow Splunk practitioners in real time!

Meet up IRL or virtually!

Join Splunk User Groups to connect and learn in-person by region or remotely by topic or industry.

Get Updates on the Splunk Community!

Announcing Modern Navigation: A New Era of Splunk User Experience

We are excited to introduce the Modern Navigation feature in the Splunk Platform, available to both cloud and ...

Modernize your Splunk Apps – Introducing Python 3.13 in Splunk

We are excited to announce that the upcoming releases of Splunk Enterprise 10.2.x and Splunk Cloud Platform ...

Step into “Hunt the Insider: An Splunk ES Premier Mystery” to catch a cybercriminal ...

After a whole week of being on call, you fell asleep on your keyboard, and you hit a sequence of buttons that ...