Splunk Cloud

Search Reference

Download manual as PDF

Download topic as PDF

Date and Time functions

The following list contains the functions that you can use to calculate dates and time.

For information about using string and numeric fields in functions, and nesting functions, see Evaluation functions.

In addition to the functions listed in this topic, there are also variables and modifiers that you can use in searches.

now()

Description

This function takes no arguments and returns the time that the search was started.

Usage

The now() function is often used with other data and time functions.

The time returned by the now() function is represented in UNIX time, or in seconds since Epoch time.

When used in a search, this function returns the UNIX time when the search is run. If you want to return the UNIX time when each result is returned, use the time() function instead.

You can use this function with the eval, fieldformat, and where commands, and as part of eval expressions.

Basic example

The following example combines determines the UNIX time value of the start of yesterday, based on the value of now().

... | eval n=relative_time(now(), "-1d@d")

Extended example

If you are looking for events that occurred within the last 30 minutes you need to calculate the event hour, event minute, the current hour, and the current minute. You use the now() function to calculate the current hour (curHour) and current minute (curMin). The event timestamp, in the _time field, is used to calculate the event hour (eventHour) and event minute (eventMin). For example:

... earliest=-30d | eval eventHour=strftime(_time,"%H") | eval eventMin=strftime(_time,"%M") | eval curHour==strftime(now(),"%H") | eval curMin=strftime(now(),"%M") | where (eventHour=curHour and eventMin > curMin - 30) or (curMin < 30 and eventHour=curHour-1 and eventMin>curMin+30) | bucket _time span=1d | chart count by _time

relative_time(X,Y)

Description

This function takes an UNIX time, X, as the first argument and a relative time specifier, Y, as the second argument and returns the UNIX time value of Y applied to X.

Usage

You can use this function with the eval, fieldformat, and where commands, and as part of eval expressions.

Basic example

The following example determines the UNIX time value of the start of yesterday, based on the value of now().

... | eval n=relative_time(now(), "-1d@d")

strftime(X,Y)

Description

This function takes a UNIX time value, X, as the first argument and renders the time as a string using the format specified by Y. The UNIX time must be in seconds. Use the first 10 digits of a UNIX time to use the time in seconds.

Usage

If the time is in milliseconds, microseconds, or nanoseconds you must convert the time into seconds. You can use the pow function to convert the number.

For example, to convert from nanoseconds to seconds, divide the number by 10^9.

| makeresults | eval StartTimestamp="1521467703049000000"| eval starttime=strftime(StartTimestamp/pow(10,9),"%Y-%m-%dT%H:%M:%S.%Q")

The results appear on the Statistics tab and look like this:

StartTimeStamp _time starttime
1521467703049000000 2018-08-10 09:04:00 2018-03-19T06:55:03.049

The _time value is the date and time that the search was run.

  • To convert from microseconds to seconds, divide the number by 10^6.
  • To convert from milliseconds to seconds, divide the number by 1000 or 10^3.

For a list and descriptions of format options, see Common time format variables.

You can use this function with the eval, fieldformat, and where commands, and as part of eval expressions.

Basic example

The following example returns the hour and minute from the _time field.

... | eval n=strftime(_time, "%H:%M")

strptime(X,Y)

Description

This function takes a time represented by a string X, for example 2018-08-13 11:22:33, and parses it into a UNIX timestamp using the format specified by Y. The date must be January 1, 1971 or later.

The _time field is in UNIX time. In Splunk Web, the _time field appears in a human readable format in the UI but is stored in UNIX time. If you attempt to use the strptime function on the _time field, no action is performed on the values in the field.

Usage

For a list and descriptions of format options, see Common time format variables.

You can use this function with the eval, fieldformat, and where commands, and as part of eval expressions.

Basic example

If the values in the timeStr field are hours and minutes, such as 11:59, the following example returns the time as a timestamp:

... | eval n=strptime(timeStr, "%H:%M")

time()

Description

This function returns the wall-clock time with microsecond resolution.

Usage

The value of the time() function will be different for each event, based on when that event was processed by the eval command.

You can use this function with the eval, fieldformat, and where commands, and as part of eval expressions.

Basic example

PREVIOUS
Cryptographic functions
  NEXT
Informational functions

This documentation applies to the following versions of Splunk Cloud: 6.6.3, 7.0.3, 7.0.0, 7.0.2


Comments

contd..

| makeresults
| eval t=now()
| eval t_strftime = strftime(t, "%Y-%m-%dT%H:%M:%S.%Q")
| eval type1 = typeof(t_strftime)
| eval t_strptime = strptime(t_strftime, "%Y-%m-%dT%H:%M:%S.%Q")
| eval type2 = typeof(t_strptime)
| table _time, t, t_strftime, type1, t_strptime, type2

Given that Splunk excels in time series data, and as such, time related calculations would be required, it is important to explain the usage of these two functions in detail, with worked out examples. Especially, how the string format Y for strptime is chosen.

Perhaps, put up a blog, and link it here, rather than change the official documentation??

Regards.

Anirbandasdeb
July 19, 2018

The description for strptime() is dubious, and I got confused with how to make it work.

A better description is given at https://answers.splunk.com/answers/80521/time-function.html
"strptime(X,Y) will convert a string X, e.g. "2013-03-22 11:22:33", into epoch, with the string being described by Y
strftime(X,Y) will convert an epoch timestamp (X) into a string, defined by Y."

Also, a better example would be helpful as well to compare the differences of usage for strptime and strftime, like so:

contd..

Anirbandasdeb
July 19, 2018

Hello Badgriff16

Thank you for reaching out to us about using Splunk!

Depending on what you are trying to do, you can use either the timechart or the bin command.

timechart count by host span=month

Or

bin _time span=month | stats count by _time host

Lstewart splunk, Splunker
December 18, 2017

I am new to Splunk and I am still learning how to write the correct syntax to gather the right information, but I am having issues. If I am trying to find the Total access attempts by month by host and the total failed access attempts by month by host how would I need to write the syntax for? I can't seem to find anything that helps me on this.

Badgriff16
December 11, 2017

It would be REALLY nice if we could specify "GMT" or another valid timezone specifier to return the offset of my personal TZ to the specified TZ. We need to normalize to GMT for some stuff (to make the search user-TZ-agnostic) and we have to do some silly stuff.

Woodcock
November 14, 2017

Was this documentation topic helpful?

Enter your email address, and someone from the documentation team will respond to you:

Please provide your comments here. Ask a question or make a suggestion.

You must be logged into splunk.com in order to post comments. Log in now.

Please try to keep this discussion focused on the content covered in this documentation topic. If you have a more general question about Splunk functionality or are experiencing a difficulty with Splunk, consider posting a question to Splunkbase Answers.

0 out of 1000 Characters