INTEGRITY Dokumentace

Funkce pro čas a datum

Implementace skalárních funkcí Cloudflare Pipelines vychází z Apache DataFusion ↗ (přes Arroyo ↗) a tato dokumentace vychází z referenční dokumentace funkcí DataFusion.

date_bin

Vypočítá časové intervaly a vrátí začátek intervalu nejbližšího zadanému časovému razítku. Použijte date_bin ke snížení vzorkovací frekvence časových řad seskupením řádků do časových "bins" (intervalů) nebo "windows" (oken) a použitím agregační nebo výběrové funkce na každé okno.

Pokud například data rozdělíte do intervalů ("bin" nebo "window") po 15 minutách, vstupní časové razítko 2023-01-01T18:18:18Z se aktualizuje na počáteční čas 15minutového intervalu, do kterého patří: 2023-01-01T18:15:00Z.

date_bin(interval, expression, origin-timestamp)

Argumenty

Podporovány jsou následující intervaly:

date_trunc

Usekne hodnotu časového razítka na zadanou přesnost.

date_trunc(precision, expression)

Argumenty

Aliasy

datetrunc

Alias pro date_trunc.

date_part

Vrátí zadanou část data jako celé číslo.

date_part(part, expression)

Argumenty

Aliasy

datepart

Alias pro date_part.

extract

Vrátí dílčí pole z hodnoty typu čas jako celé číslo.

extract(field FROM source)

Odpovídá volání date_part('field', source). Například následující zápisy jsou rovnocenné:

extract(day FROM '2024-04-13'::date)
date_part('day', '2024-04-13'::date)

Viz date_part.

make_date

Vytvoří datum ze složek rok/měsíc/den.

make_date(year, month, day)

Argumenty

Příklad

> select make_date(2023, 1, 31);
+-------------------------------------------+
| make_date(Int64(2023),Int64(1),Int64(31)) |
+-------------------------------------------+
| 2023-01-31                                |
+-------------------------------------------+
> select make_date('2023', '01', '31');
+-----------------------------------------------+
| make_date(Utf8("2023"),Utf8("01"),Utf8("31")) |
+-----------------------------------------------+
| 2023-01-31                                    |
+-----------------------------------------------+

to_char

Vrátí řetězcovou reprezentaci data, času, časového razítka nebo trvání podle zadaného Formát Chrono ↗. Na rozdíl od ekvivalentu této funkce v PostgreSQL není podporováno číselné formátování.

to_char(expression, format)

Argumenty

Příklad

> > select to_char('2023-03-01'::date, '%d-%m-%Y');
+----------------------------------------------+
| to_char(Utf8("2023-03-01"),Utf8("%d-%m-%Y")) |
+----------------------------------------------+
| 01-03-2023                                   |
+----------------------------------------------+

Aliasy

to_timestamp

Převede hodnotu na časové razítko (YYYY-MM-DDT00:00:00Z). Jako vstup podporuje řetězce, celá čísla, čísla bez znaménka a desetinná čísla. Řetězce se analyzují ve formátu RFC3339 (například '2023-07-20T05:44:00'), pokud nejsou zadány žádné [Chrono formats]. Celá čísla, čísla bez znaménka a desetinná čísla se interpretují jako sekundy od začátku unixové epochy (1970-01-01T00:00:00Z). Vrátí odpovídající časové razítko.

Poznámka: to_timestamp vrací Timestamp(Nanosecond). Podporovaný rozsah pro vstupní celé číslo je mezi -9223372037 a 9223372036. Podporovaný rozsah pro vstupní řetězec je mezi 1677-09-21T00:12:44.0 a 2262-04-11T23:47:16.0. Použijte prosím to_timestamp_seconds pro vstup mimo podporovaný rozsah.

to_timestamp(expression[, ..., format_n])

Argumenty

Příklad

> select to_timestamp('2023-01-31T09:26:56.123456789-05:00');
+-----------------------------------------------------------+
| to_timestamp(Utf8("2023-01-31T09:26:56.123456789-05:00")) |
+-----------------------------------------------------------+
| 2023-01-31T14:26:56.123456789                             |
+-----------------------------------------------------------+
> select to_timestamp('03:59:00.123456789 05-17-2023', '%c', '%+', '%H:%M:%S%.f %m-%d-%Y');
+--------------------------------------------------------------------------------------------------------+
| to_timestamp(Utf8("03:59:00.123456789 05-17-2023"),Utf8("%c"),Utf8("%+"),Utf8("%H:%M:%S%.f %m-%d-%Y")) |
+--------------------------------------------------------------------------------------------------------+
| 2023-05-17T03:59:00.123456789                                                                          |
+--------------------------------------------------------------------------------------------------------+

to_timestamp_millis

Převede hodnotu na časové razítko (YYYY-MM-DDT00:00:00.000Z). Jako vstup podporuje řetězce, celá čísla a čísla bez znaménka. Řetězce se analyzují ve formátu RFC3339 (například '2023-07-20T05:44:00'), pokud nejsou zadány žádné Formát Chrono ↗formáty jsou k dispozici. Celá čísla a čísla bez znaménka se interpretují jako milisekundy od unixové epochy (1970-01-01T00:00:00Z). Vrátí odpovídající časové razítko.

to_timestamp_millis(expression[, ..., format_n])

Argumenty

Příklad

> select to_timestamp_millis('2023-01-31T09:26:56.123456789-05:00');
+------------------------------------------------------------------+
| to_timestamp_millis(Utf8("2023-01-31T09:26:56.123456789-05:00")) |
+------------------------------------------------------------------+
| 2023-01-31T14:26:56.123                                          |
+------------------------------------------------------------------+
> select to_timestamp_millis('03:59:00.123456789 05-17-2023', '%c', '%+', '%H:%M:%S%.f %m-%d-%Y');
+---------------------------------------------------------------------------------------------------------------+
| to_timestamp_millis(Utf8("03:59:00.123456789 05-17-2023"),Utf8("%c"),Utf8("%+"),Utf8("%H:%M:%S%.f %m-%d-%Y")) |
+---------------------------------------------------------------------------------------------------------------+
| 2023-05-17T03:59:00.123                                                                                       |
+---------------------------------------------------------------------------------------------------------------+

to_timestamp_micros

Převede hodnotu na časové razítko (YYYY-MM-DDT00:00:00.000000Z). Jako vstup podporuje řetězce, celá čísla a čísla bez znaménka. Řetězce se analyzují ve formátu RFC3339 (například '2023-07-20T05:44:00'), pokud nejsou zadány žádné Formát Chrono ↗formáty jsou k dispozici. Celá čísla a čísla bez znaménka se interpretují jako mikrosekundy od unixové epochy (1970-01-01T00:00:00Z) Vrací odpovídající časové razítko.

to_timestamp_micros(expression[, ..., format_n])

Argumenty

Příklad

> select to_timestamp_micros('2023-01-31T09:26:56.123456789-05:00');
+------------------------------------------------------------------+
| to_timestamp_micros(Utf8("2023-01-31T09:26:56.123456789-05:00")) |
+------------------------------------------------------------------+
| 2023-01-31T14:26:56.123456                                       |
+------------------------------------------------------------------+
> select to_timestamp_micros('03:59:00.123456789 05-17-2023', '%c', '%+', '%H:%M:%S%.f %m-%d-%Y');
+---------------------------------------------------------------------------------------------------------------+
| to_timestamp_micros(Utf8("03:59:00.123456789 05-17-2023"),Utf8("%c"),Utf8("%+"),Utf8("%H:%M:%S%.f %m-%d-%Y")) |
+---------------------------------------------------------------------------------------------------------------+
| 2023-05-17T03:59:00.123456                                                                                    |
+---------------------------------------------------------------------------------------------------------------+

to_timestamp_nanos

Převede hodnotu na časové razítko (YYYY-MM-DDT00:00:00.000000000Z). Jako vstup podporuje řetězce, celá čísla a čísla bez znaménka. Řetězce se analyzují ve formátu RFC3339 (například '2023-07-20T05:44:00'), pokud nejsou zadány žádné [Chrono formats]. Celá čísla a čísla bez znaménka se interpretují jako nanosekundy od začátku unixové epochy (1970-01-01T00:00:00Z). Vrátí odpovídající časové razítko.

to_timestamp_nanos(expression[, ..., format_n])

Argumenty

Příklad

> select to_timestamp_nanos('2023-01-31T09:26:56.123456789-05:00');
+-----------------------------------------------------------------+
| to_timestamp_nanos(Utf8("2023-01-31T09:26:56.123456789-05:00")) |
+-----------------------------------------------------------------+
| 2023-01-31T14:26:56.123456789                                   |
+-----------------------------------------------------------------+
> select to_timestamp_nanos('03:59:00.123456789 05-17-2023', '%c', '%+', '%H:%M:%S%.f %m-%d-%Y');
+--------------------------------------------------------------------------------------------------------------+
| to_timestamp_nanos(Utf8("03:59:00.123456789 05-17-2023"),Utf8("%c"),Utf8("%+"),Utf8("%H:%M:%S%.f %m-%d-%Y")) |
+--------------------------------------------------------------------------------------------------------------+
| 2023-05-17T03:59:00.123456789                                                                                |
+---------------------------------------------------------------------------------------------------------------+

to_timestamp_seconds

Převede hodnotu na časové razítko (YYYY-MM-DDT00:00:00.000Z). Jako vstup podporuje řetězce, celá čísla a čísla bez znaménka. Řetězce se analyzují ve formátu RFC3339 (například '2023-07-20T05:44:00'), pokud nejsou zadány žádné Formát Chrono ↗formáty jsou k dispozici. Celá čísla a čísla bez znaménka se interpretují jako sekundy od unixové epochy (1970-01-01T00:00:00Z). Vrátí odpovídající časové razítko.

to_timestamp_seconds(expression[, ..., format_n])

Argumenty

Příklad

> select to_timestamp_seconds('2023-01-31T09:26:56.123456789-05:00');
+-------------------------------------------------------------------+
| to_timestamp_seconds(Utf8("2023-01-31T09:26:56.123456789-05:00")) |
+-------------------------------------------------------------------+
| 2023-01-31T14:26:56                                               |
+-------------------------------------------------------------------+
> select to_timestamp_seconds('03:59:00.123456789 05-17-2023', '%c', '%+', '%H:%M:%S%.f %m-%d-%Y');
+----------------------------------------------------------------------------------------------------------------+
| to_timestamp_seconds(Utf8("03:59:00.123456789 05-17-2023"),Utf8("%c"),Utf8("%+"),Utf8("%H:%M:%S%.f %m-%d-%Y")) |
+----------------------------------------------------------------------------------------------------------------+
| 2023-05-17T03:59:00                                                                                            |
+----------------------------------------------------------------------------------------------------------------+

from_unixtime

Převede celé číslo na formát časového razítka RFC3339 (YYYY-MM-DDT00:00:00.000000000Z). Celá čísla a čísla bez znaménka se interpretují jako nanosekundy od začátku unixové epochy (1970-01-01T00:00:00Z) vrátí odpovídající časové razítko.

from_unixtime(expression)

Argumenty

now

Vrátí časové razítko UTC v okamžiku spuštění pipeline.

Návratová hodnota now() se určuje v době kompilace dotazu a zůstává konstantní po celou dobu běhu pipeline.