timestamp_seconds ↗
Use the timestamp_seconds() function to convert an integer value representing Unix epoch time in seconds into a timestamp.
Syntax
timestamp_seconds (<integer>)
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
integer |
integer | Yes | The numerical value representing epoch time in seconds. This can be a literal integer or a field containing an integer. |
Returns
The timestamp_seconds() function returns a timestamp compatible value, typically formatted as MMM dd YYYY HH:mm:ss.
Usage notes
- The function expects a single integer input, which is implicitly interpreted as the number of seconds that have passed since the Unix epoch (January 1, 1970, 00:00:00 UTC).
- Endpoint Detection and Response (EDR) columns often store epoch values in milliseconds. Ensure your input is in seconds; otherwise, consider using
to_timestamp()with the appropriate unit specification. - If the input integer field or literal is
NULL, the function returnsNULL. - If the integer input value is not a sensible epoch time (for example, an extremely large or small non-epoch value), the function may return
NULLor an unexpected timestamp.
Examples
Example 1: Converting a literal epoch second integer
Goal: Convert a static integer literal (representing a known epoch second value) into a human-readable timestamp.
XQL code:
config timeframe = 1d | dataset = sample_xql_raw | alter known_epoch_seconds = 1698304800 | alter converted_timestamp = timestamp_seconds(known_epoch_seconds) | fields event_id, known_epoch_seconds, converted_timestamp | limit 3
Explanation: The query takes the known_epoch_seconds integer (which is 1698304800, representing 2023-10-26 10:00:00 UTC) and converts it to its corresponding timestamp value.
Output:
| EVENT_ID | KNOWN_EPOCH_SECONDS | CONVERTED_TIMESTAMP |
|---|---|---|
| 101 | 1698304800 | Oct 26th 2023 10:00:00 |
| 102 | 1698304800 | Oct 26th 2023 10:00:00 |
| 103 | 1698304800 | Oct 26th 2023 10:00:00 |
Example 2: Converting an integer field to a timestamp
Goal: Apply the function to an existing integer field to interpret it as an epoch timestamp.
XQL code:
config timeframe = 1d | dataset = sample_xql_raw | alter event_id_as_timestamp = timestamp_seconds(to_integer(event_id)) | fields event_id, event_id_as_timestamp | limit 3
Explanation: The integer value of event_id is interpreted as the number of seconds past the Unix epoch. For example, 101 becomes 101 seconds past epoch.
Output:
| EVENT_ID | EVENT_ID_AS_TIMESTAMP |
|---|---|
| 101 | Jan 1st 1970 00:01:41 |
| 102 | Jan 1st 1970 00:01:42 |
| 103 | Jan 1st 1970 00:01:43 |
Example 3: Converting a derived integer from a JSON field to a timestamp
Goal: Extract a numerical value from a JSON field, convert it to an integer, and then convert that integer to a timestamp.
XQL code:
config timeframe = 1d | dataset = sample_xql_raw | alter status_code_string = simple_json_data -> code | alter status_code_int = to_integer(status_code_string) | alter status_code_timestamp = timestamp_seconds(status_code_int) | fields event_id, simple_json_data, status_code_string, status_code_int, status_code_timestamp | limit 3
Explanation: For event 101, the code value 200 is extracted, converted to an integer, and interpreted as 200 seconds from epoch. For events where the field is missing, the result is NULL.
Output:
| EVENT_ID | SIMPLE_JSON_DATA | STATUS_CODE_STRING | STATUS_CODE_INT | STATUS_CODE_TIMESTAMP |
|---|---|---|---|---|
| 101 | {"status": "ok", "code": 200} | "200" | 200 | Jan 1st 1970 00:03:20 |
| 102 | {"status": "fail", "error": "access_denied"} | NULL | NULL | NULL |
| 103 | {"connection_id": "CONN-001", "protocol": "TCP"} | NULL | NULL | NULL |
Example 4: Handling NULL input
Goal: Demonstrate the behavior when the function is provided with a NULL input.
XQL code:
config timeframe = 1d | dataset = sample_xql_raw | alter null_input_value = NULL | alter converted_null_timestamp = timestamp_seconds(null_input_value) | fields event_id, null_input_value, converted_null_timestamp | limit 3
Explanation: The function returns NULL because the input is explicitly NULL.
Output:
| EVENT_ID | NULL_INPUT_VALUE | CONVERTED_NULL_TIMESTAMP |
|---|---|---|
| 101 | NULL | NULL |
| 102 | NULL | NULL |
| 103 | NULL | NULL |