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!

Announcing Scheduled Export GA for Dashboard Studio

We're excited to announce the general availability of Scheduled Export for Dashboard Studio. Starting in ...

Extending Observability Content to Splunk Cloud

Watch Now!   In this Extending Observability Content to Splunk Cloud Tech Talk, you'll see how to leverage ...

More Control Over Your Monitoring Costs with Archived Metrics GA in US-AWS!

What if there was a way you could keep all the metrics data you need while saving on storage costs?This is now ...