> ## Documentation Index
> Fetch the complete documentation index at: https://www.integrate.io/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# ETL: NormalizeDate

> Normalize a date or datetime string to an ISO 8601 date in Integrate.io ETL expressions for consistent storage, sorting, and downstream date processing.

## Description

Parses common date string formats and returns an [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date (`YYYY-MM-DD`). Use it to standardize date values from mixed sources before storing, sorting, or joining on date.

Accepted input formats:

* ISO date: `2026-05-22`
* Slash or dash US-style: `05/22/2026`, `5/2/2026`, `05-22-2026`
* English month names (case-insensitive): `May 22, 2026`, `22 May 2026`
* Datetime values, from which the date portion is extracted: `2026-05-22T10:00:00`, `2026-05-27T17:57:44Z`, `2026-05-27T17:57:44+05:00`, `2026-05-27 17:57:44.123`

For datetime inputs that include a timezone offset, `NormalizeDate` returns the date as written and performs no timezone conversion. `NormalizeDate('2026-05-27T01:00:00+12:00')` returns `2026-05-27`, not `2026-05-26`.

The function uses strict date resolution, so silently-adjusted values such as `Feb 30` are rejected rather than rolled forward.

## Syntax

`NormalizeDate(string_expression[, locale_tag])`

The optional `locale_tag` controls how ambiguous numeric formats are interpreted. It is case-insensitive.

| Locale tag     | Behavior                                                                           |
| -------------- | ---------------------------------------------------------------------------------- |
| `US` (default) | Month/day/year for numeric formats (`05/22/2026` is May 22).                       |
| `EU`           | Day/month/year for numeric formats (`01/02/2026` is February 1).                   |
| `ISO`          | Only accepts unambiguous formats. Rejects `NN/NN/YYYY` but accepts datetime forms. |

## Examples

`NormalizeDate('May 22, 2026')` returns `'2026-05-22'`.

`NormalizeDate('05/22/2026')` returns `'2026-05-22'`.

`NormalizeDate('01/02/2026', 'EU')` returns `'2026-02-01'`.

`NormalizeDate('2026-05-27T17:57:44Z')` returns `'2026-05-27'`.

`NormalizeDate('2026-05-27T01:00:00+12:00')` returns `'2026-05-27'`.

## Return value datatype

String

## Impact of null value

Returns `null` for any of the following:

* Null, empty, or whitespace-only input
* Invalid calendar dates (`Feb 30`, month 13, non-leap `Feb 29`)
* Invalid time components in datetime inputs (hour 25, minute 60)
* 2-digit years
* Unknown locale tags
