ClickHouse/docs/en/sql-reference/functions/ulid-functions.md

87 lines
2.6 KiB
Markdown
Raw Normal View History

2023-02-14 16:58:29 +00:00
---
slug: /en/sql-reference/functions/ulid-functions
2023-04-19 17:05:55 +00:00
sidebar_position: 190
2023-02-14 16:58:29 +00:00
sidebar_label: ULID
---
# Functions for Working with ULID
## generateULID
Generates the [ULID](https://github.com/ulid/spec).
**Syntax**
``` sql
generateULID([x])
```
**Arguments**
- `x` — [Expression](../../sql-reference/syntax.md#syntax-expressions) resulting in any of the [supported data types](../../sql-reference/data-types/index.md#data_types). The resulting value is discarded, but the expression itself if used for bypassing [common subexpression elimination](../../sql-reference/functions/index.md#common-subexpression-elimination) if the function is called multiple times in one query. Optional parameter.
2023-02-14 16:58:29 +00:00
**Returned value**
The [FixedString](../data-types/fixedstring.md) type value.
**Usage example**
``` sql
SELECT generateULID()
```
``` text
┌─generateULID()─────────────┐
│ 01GNB2S2FGN2P93QPXDNB4EN2R │
└────────────────────────────┘
```
**Usage example if it is needed to generate multiple values in one row**
```sql
SELECT generateULID(1), generateULID(2)
```
``` text
┌─generateULID(1)────────────┬─generateULID(2)────────────┐
│ 01GNB2SGG4RHKVNT9ZGA4FFMNP │ 01GNB2SGG4V0HMQVH4VBVPSSRB │
└────────────────────────────┴────────────────────────────┘
```
2023-03-08 06:01:33 +00:00
## ULIDStringToDateTime
This function extracts the timestamp from a ULID.
**Syntax**
``` sql
ULIDStringToDateTime(ulid[, timezone])
```
**Arguments**
- `ulid` — Input ULID. [String](/docs/en/sql-reference/data-types/string.md) or [FixedString(26)](/docs/en/sql-reference/data-types/fixedstring.md).
- `timezone` — [Timezone name](../../operations/server-configuration-parameters/settings.md#server_configuration_parameters-timezone) for the returned value (optional). [String](../../sql-reference/data-types/string.md).
2023-03-08 06:01:33 +00:00
**Returned value**
- Timestamp with milliseconds precision.
2023-03-08 06:01:33 +00:00
Type: [DateTime64(3)](/docs/en/sql-reference/data-types/datetime64.md).
**Usage example**
``` sql
SELECT ULIDStringToDateTime('01GNB2S2FGN2P93QPXDNB4EN2R')
```
``` text
┌─ULIDStringToDateTime('01GNB2S2FGN2P93QPXDNB4EN2R')─┐
│ 2022-12-28 00:40:37.616 │
└────────────────────────────────────────────────────┘
```
2023-02-14 16:58:29 +00:00
## See Also
- [UUID](../../sql-reference/functions/uuid-functions.md)