Getting Data In

Between two timestamp fields, how to compare and determine which timestamp is the later time?

bretai2k
New Member

First, I'd like to apologize because I am new to Splunk development, and am trying to learn how to do things.

I have timestamp fields (formatted %Y-%m-%d %H:%M:%S) from two different sources, timeA and timeB. I've got both sources successfully joined, but now I need to compare the two fields and determine which date is the later date. I want to assign the later of the two dates to a new field. Also, sometimes either date could be blank (and in a few cases, they're both blank).

Does anyone know how to do this? I've had a hard time figuring anything out in the docs.

TIA,
Ryan

0 Karma
1 Solution

niketn
Legend

You need to determine whether timestamp is in epoch format or string format. If they are string time you need to convert to epoch first. Try the following:

 <Your Base Search>
| eval Time1=if(isnull(Time1),0,Time1)
| eval Time2=if(isnull(Time2),0,Time2)
| eval Time3=if(Time1>Time2,Time1,Time2)

For understanding time fields and conversions you can check out

https://docs.splunk.com/Documentation/Splunk/latest/SearchReference/CommonEvalFunctions#Date_and_Tim...
https://docs.splunk.com/Documentation/Splunk/latest/SearchReference/Convert
http://docs.splunk.com/Documentation/Splunk/latest/SearchReference/Commontimeformatvariables

____________________________________________
| makeresults | eval message= "Happy Splunking!!!"

View solution in original post

DalJeanis
Legend

In the given format, they can be compared directly. Year, month, day, hour, minute, second are already in descending order of significance. The only caveat is whether they are in the same time zone, but you don't have a time zone qualifier (%Z) on the format, so you can just say

if(timeA < timeB,timeB,timeA)

0 Karma

niketn
Legend

You need to determine whether timestamp is in epoch format or string format. If they are string time you need to convert to epoch first. Try the following:

 <Your Base Search>
| eval Time1=if(isnull(Time1),0,Time1)
| eval Time2=if(isnull(Time2),0,Time2)
| eval Time3=if(Time1>Time2,Time1,Time2)

For understanding time fields and conversions you can check out

https://docs.splunk.com/Documentation/Splunk/latest/SearchReference/CommonEvalFunctions#Date_and_Tim...
https://docs.splunk.com/Documentation/Splunk/latest/SearchReference/Convert
http://docs.splunk.com/Documentation/Splunk/latest/SearchReference/Commontimeformatvariables

____________________________________________
| makeresults | eval message= "Happy Splunking!!!"

bretai2k
New Member

Worked perfectly! Thank you niketnilay

0 Karma
Get Updates on the Splunk Community!

Splunk Classroom Chronicles: Training Tales and Testimonials (Episode 4)

Welcome back to Splunk Classroom Chronicles, our ongoing series where we shine a light on what really happens ...

From GPU to Application: Monitoring Cisco AI Infrastructure with Splunk Observability ...

AI workloads are different. They demand specialized infrastructure—powerful GPUs, enterprise-grade networking, ...

Application management with Targeted Application Install for Victoria Experience

  Experience a new era of flexibility in managing your Splunk Cloud Platform apps! With Targeted Application ...