startofweek function in APL to round a datetime value down to the start of the week. The function returns the preceding Sunday at midnight (00:00:00) for the date that contains the given datetime value. You can optionally shift the result by a specified number of weeks using the offset parameter.
You can use startofweek to bin events into weekly buckets for aggregation, reporting, and trend analysis across log, trace, and security datasets.
Use it when you want to:
- Group events by week for weekly summaries and dashboards.
- Align timestamps to week boundaries for consistent aggregation.
- Compare metrics across different weeks.
For users of other query languages
If you come from other query languages, this section explains how to adjust your existing queries to achieve the same results in APL.Splunk SPL users
Splunk SPL users
In Splunk SPL, you use
relative_time with the @w0 snap-to modifier to round a timestamp to the start of the week (Sunday). In APL, the startofweek function achieves the same result and supports an optional week offset.ANSI SQL users
ANSI SQL users
In ANSI SQL, you use
DATE_TRUNC('week', timestamp_column) to truncate a timestamp to the start of the week. Note that the start day of the week varies across SQL implementations. In APL, startofweek always uses Sunday as the start of the week.Usage
Syntax
Parameters
| Name | Type | Description |
|---|---|---|
| datetime | datetime | The input datetime value. |
| offset | long | Optional: The number of weeks to offset from the input datetime. Default is 0. |
Returns
Adatetime representing the start of the week (Sunday at 00:00:00) for the given date value, shifted by the offset if specified.
Use case examples
- Log analysis
- OpenTelemetry traces
- Security logs
Count requests per week to identify weekly traffic patterns.QueryRun in PlaygroundOutput
This query bins each HTTP request to the start of its week and counts the total requests per week.
| week_start | request_count |
|---|---|
| 2025-01-05T00:00:00Z | 10234 |
| 2025-01-12T00:00:00Z | 11587 |
| 2025-01-19T00:00:00Z | 9876 |
List of related functions
- endofweek: Returns the end of the week for a datetime value.
- startofday: Returns the start of the day for a datetime value.
- startofmonth: Returns the start of the month for a datetime value.
- startofyear: Returns the start of the year for a datetime value.
- week_of_year: Returns the ISO 8601 week number from a datetime value.