# strptime — DuckDB 1.4.4

Converts the `string` text to timestamp applying the format strings in the list until one succeeds. Throws an error on failure. To return `NULL` on failure, use try_strptime.

- Reference: /products/haybarn/functions/releases/duckdb-1.4.4/strptime/
- JSON: /products/haybarn/functions/api/v1/duckdb-1.4.4/functions/strptime.json
- Snapshot ID: duckdb-1.4.4
- Engine: duckdb v1.4.4
- Source ID: 6ddac802ff
- Binary SHA-256: 8d05bee013ea13d6b5d75272d7ddb52b3d6d9cdaf30d1a3e8e82d42757905182
- Captured: 2026-09-05T18:37:36.091Z
- Source: https://github.com/duckdb/duckdb/releases/tag/v1.4.4
- Loaded extensions: autocomplete, core_functions, icu, json, parquet, shell

## Interpretation

- Choose a snapshot matching the target engine and build. The default is captured from the published Haybarn WASM package used by the browser playground. Historical native snapshots are also available.
- Availability is an observation in the recorded build and extension profile, not a guarantee of support in every installation or in WASM.
- Types and descriptions are declarations from duckdb_functions(). Binding can specialize result types. Null means not supplied by the catalog; do not invent defaults, optionality, argument mode, or table output columns.
- Raw parameter arrays preserve catalog order for scalar/aggregate/macro functions. Raw table arguments are alphabetical. Use callingConvention for engine-confirmed positional order and named arguments; null modes are unrecorded. Named does not mean optional. Macro defaults and special named variadic behavior are not supplied by duckdb_functions().
- Catalog examples are source material and may require data or extensions. runnableExamples contains separately verified SQL for the pinned WASM package; sample-data adaptations and guide examples are labeled separately.
- Guide annotations and recipes are separate editorial content. The browser runner always uses Haybarn WASM 1.5.5-rc3, independently of the documentation snapshot.
- All URLs beginning with / are relative to the origin hosting this document. Exports require no JavaScript, cookies, API key, or browser engine.

## Overloads

### overload-c367c9f444c0386d

Kind: scalar. Parameter order: catalog-order.

```text
strptime(text: VARCHAR, format: VARCHAR) → TIMESTAMP
```

Link: /products/haybarn/functions/releases/duckdb-1.4.4/strptime/#overload-c367c9f444c0386d

| Argument | Catalog type | Calling mode |
| --- | --- | --- |
| text | VARCHAR | not recorded |
| format | VARCHAR | not recorded |

Declared return type: TIMESTAMP. Variadic argument type: none declared.
Stability: CONSISTENT. Declared side effects: false.

Converts the `string` text to timestamp according to the format string. Throws an error on failure. To return `NULL` on failure, use try_strptime.

### overload-174d51fc106482ce

Kind: scalar. Parameter order: catalog-order.

```text
strptime(text: VARCHAR, format-list: VARCHAR[]) → TIMESTAMP
```

Link: /products/haybarn/functions/releases/duckdb-1.4.4/strptime/#overload-174d51fc106482ce

| Argument | Catalog type | Calling mode |
| --- | --- | --- |
| text | VARCHAR | not recorded |
| format-list | VARCHAR[] | not recorded |

Declared return type: TIMESTAMP. Variadic argument type: none declared.
Stability: CONSISTENT. Declared side effects: false.


## Guide recipes

No guide recipes.

## Engine catalog examples

Source examples may require additional data or extensions. Expressions are wrapped in SELECT; execution verification is not recorded.

Reported for: overload-c367c9f444c0386d

```sql
SELECT strptime('Wed, 1 January 1992 - 08:38:40 PM', '%a, %-d %B %Y - %I:%M:%S %p');
```

Reported for: overload-174d51fc106482ce

```sql
SELECT strptime('4/15/2023 10:56:00', ['%d/%m/%Y %H:%M:%S', '%m/%d/%Y %H:%M:%S']);
```

## Runnable examples

Executed successfully in Haybarn WASM 1.5.5-rc3. Sample data and guide examples are separate from the original catalog.

```sql
SELECT strptime('4/15/2023 10:56:00', ['%d/%m/%Y %H:%M:%S', '%m/%d/%Y %H:%M:%S']);
```

```sql
SELECT strptime('Wed, 1 January 1992 - 08:38:40 PM', '%a, %-d %B %Y - %I:%M:%S %p');
```

## Additional DuckDB documentation

- [Date Format Functions](https://duckdb.org/docs/current/sql/functions/dateformat)
- [Timestamp Functions](https://duckdb.org/docs/current/sql/functions/timestamp#strptimetext-format)
- [Timestamp with Time Zone Functions](https://duckdb.org/docs/current/sql/functions/timestamptz#strptimetext-format)

## In other engines

### PostgreSQL: to_date()



PostgreSQL:

```sql
SELECT TO_DATE('01/01/2000', 'MM/DD/YYYY')
```

Haybarn / DuckDB:

```sql
SELECT CAST(STRPTIME('01/01/2000', '%m/%d/%Y') AS DATE)
```

Translation from [SQLGlot](https://github.com/tobymao/sqlglot/blob/3086608e6fd4c41c02dfba47171608d2b193fce2/tests/dialects/test_postgres.py#L1031).

### Apache Hive: unix_timestamp()

Uses strptime as part of a larger rewrite.

Apache Hive:

```sql
UNIX_TIMESTAMP(x)
```

Haybarn / DuckDB:

```sql
EPOCH(STRPTIME(x, '%Y-%m-%d %H:%M:%S'))
```

Translation from [SQLGlot](https://github.com/tobymao/sqlglot/blob/3086608e6fd4c41c02dfba47171608d2b193fce2/tests/dialects/test_hive.py#L485).

### Apache Spark: to_timestamp()



Apache Spark:

```sql
SELECT TO_TIMESTAMP(x, 'zZ')
```

Haybarn / DuckDB:

```sql
SELECT STRPTIME(x, '%Z%z')
```

Translation from [SQLGlot](https://github.com/tobymao/sqlglot/blob/3086608e6fd4c41c02dfba47171608d2b193fce2/tests/dialects/test_spark.py#L665).

### BigQuery: parse_time()



BigQuery:

```sql
SELECT PARSE_TIME('%H:%M', '14:30')
```

Haybarn / DuckDB:

```sql
SELECT CAST(STRPTIME('14:30', '%H:%M') AS TIME)
```

Translation from [SQLGlot](https://github.com/tobymao/sqlglot/blob/3086608e6fd4c41c02dfba47171608d2b193fce2/tests/dialects/test_duckdb.py#L1910).

### Exasol: to_date()



Exasol:

```sql
TO_DATE(x, 'YYYY')
```

Haybarn / DuckDB:

```sql
CAST(STRPTIME(x, '%Y') AS DATE)
```

Translation from [SQLGlot](https://github.com/tobymao/sqlglot/blob/3086608e6fd4c41c02dfba47171608d2b193fce2/tests/dialects/test_exasol.py#L504).

### Oracle: to_date()



Oracle:

```sql
SELECT TO_DATE('2024-12-12', 'YYYY-MM-DD')
```

Haybarn / DuckDB:

```sql
SELECT CAST(STRPTIME('2024-12-12', '%Y-%m-%d') AS DATE)
```

Translation from [SQLGlot](https://github.com/tobymao/sqlglot/blob/3086608e6fd4c41c02dfba47171608d2b193fce2/tests/dialects/test_oracle.py#L344).

### Presto: date_parse()



Presto:

```sql
DATE_PARSE(x, '%Y-%m-%d')
```

Haybarn / DuckDB:

```sql
STRPTIME(x, '%Y-%m-%d')
```

Translation from [SQLGlot](https://github.com/tobymao/sqlglot/blob/3086608e6fd4c41c02dfba47171608d2b193fce2/tests/dialects/test_presto.py#L329).

### SQL Server: convert()



SQL Server:

```sql
SELECT CONVERT(DATETIME, '2006-04-25T15:50:59.997', 126)
```

Haybarn / DuckDB:

```sql
SELECT STRPTIME('2006-04-25T15:50:59.997', '%Y-%m-%dT%H:%M:%S.%f')
```

Translation from [SQLGlot](https://github.com/tobymao/sqlglot/blob/3086608e6fd4c41c02dfba47171608d2b193fce2/tests/dialects/test_tsql.py#L103).

### Snowflake: to_date()



Snowflake:

```sql
TO_DATE(x, 'MM-DD-YYYY')
```

Haybarn / DuckDB:

```sql
CAST(STRPTIME(x, '%m-%d-%Y') AS DATE)
```

Translation from [SQLGlot](https://github.com/tobymao/sqlglot/blob/3086608e6fd4c41c02dfba47171608d2b193fce2/tests/dialects/test_snowflake.py#L4014).

## Observed availability

| Snapshot | Observed | Overloads | JSON |
| --- | --- | --- | --- |
| haybarn-1.5.5-rc3 | present | 2 | [reference](/products/haybarn/functions/api/v1/haybarn-1.5.5-rc3/functions/strptime.json) |
| duckdb-1.5.5 | present | 2 | [reference](/products/haybarn/functions/api/v1/duckdb-1.5.5/functions/strptime.json) |
| duckdb-1.4.4 | present | 2 | [reference](/products/haybarn/functions/api/v1/duckdb-1.4.4/functions/strptime.json) |
| duckdb-1.3.2 | present | 2 | [reference](/products/haybarn/functions/api/v1/duckdb-1.3.2/functions/strptime.json) |

Engine catalog documentation is derived from MIT-licensed Haybarn and DuckDB. [Notices](/third-party-notices.txt).
