Typy a převod typů
Power Query M používá typy ke klasifikaci hodnot, aby měly strukturovanější datovou sadu. Tento článek popisuje nejčastěji používané typy M a způsob převodu jednoho typu na jiný typ.
Běžně používané typy
Datové typy odkazují na libovolný typ, který se používá k objasnění struktury konkrétních dat. Nejčastěji používané datové typy jsou primitivní typy. Mezi tyto typy patří:
-
type any
, který klasifikuje libovolnou hodnotu. -
type null
, který klasifikuje nulovou hodnotu. -
type logical
, který klasifikuje hodnoty true a false. -
type number
, který klasifikuje číselné hodnoty. -
type time
, který klasifikuje časové hodnoty. -
type date
, který klasifikuje hodnoty dat. -
type datetime
, který klasifikuje hodnoty data a času. -
type datetimezone
, který klasifikuje hodnoty datetimezone. -
type duration
, který klasifikuje hodnoty doby trvání. -
type text
, který klasifikuje textové hodnoty. -
type binary
, který klasifikuje binární hodnoty. -
type type
, který klasifikuje hodnoty typu. -
type list
, který klasifikuje hodnoty seznamu. -
type record
, který klasifikuje hodnoty záznamů. -
type table
, který klasifikuje hodnoty tabulky. -
type function
, který klasifikuje hodnoty funkce. -
type anynonnull
, který klasifikuje všechny hodnoty s výjimkou null. -
type none
, který neklasifikuje žádné hodnoty.
Další informace o těchto typech najdete v tématu Typy.
Kromě těchto běžných datových typů existuje také sada datových typů pomocí formátu *.Type
. Nejčastěji používané datové typy tohoto formátu jsou:
-
Byte.Type
, který klasifikuje hodnotu 8bitového čísla. -
Int8.Type
, který klasifikuje hodnotu 8bitového čísla. -
Int16.Type
, která klasifikuje hodnotu 16bitového čísla. -
Int32.Type
, který klasifikuje 32bitovou číselnou hodnotu. -
Int64.Type
, který klasifikuje hodnotu 64bitového čísla. -
Single.Type
, která klasifikuje 9místné číslo s plovoucí desetinnou čárkou. -
Double.Type
, která klasifikuje 17místnou hodnotu s plovoucí desetinnou čárkou. -
Decimal.Type
, které klasifikuje 15místné číslo s pohyblivou desetinnou čárkou. -
Currency.Type
, který klasifikuje 19místnou číselnou hodnotu se čtyřmi číslicemi vpravo od oddělovače ". -
Percentage.Type
, který klasifikuje 15místnou číselnou hodnotu maskou pro formátování hodnoty jako procenta. -
Guid.Type
, který klasifikuje textovou hodnotu GUID.
Primitivní typy lze také zapsat ve formátu *.Type
. Proto můžete psát number
jako Number.Type
, record
jako Record.Type
atd.
Když použijete některý z těchto typů, mějte na paměti, že podobně jako u všech kódů M se rozlišují malá a velká písmena.
Následující tabulka obsahuje další informace o každém z těchto typů.
Datový typ | Popis |
---|---|
any |
Datový typ any je stav zadaný v případech, kdy hodnota nemá explicitní definici datového typu. Typ any je datový typ, který klasifikuje všechny hodnoty. |
binary |
Datový typ binary lze použít k reprezentaci jiných dat s binárním formátem. |
type |
Hodnota, která klasifikuje jiné hodnoty. Další informace najdete v části Typy. |
null |
Představuje absenci hodnoty nebo hodnoty neurčitého nebo neznámého stavu. |
anynonnull |
Představuje libovolný typ, který je nenulovatelný. |
date |
Představuje pouze datum (bez časového úseku). |
time |
Představuje pouze čas (bez části data). |
datetime |
Představuje hodnotu data i času. Časová část data je uložena jako zlomek na celé násobky 1/300 sekund (3,33 ms). Podporují se data mezi roky 1900 a 9999. |
datetimezone |
Představuje datum a čas UTC s posunem časového pásma. |
duration |
Představuje dobu trvání. Tento typ lze přidat nebo odečíst z pole datetime se správnými výsledky. Další informace najdete na Doba trvání. |
text |
Datový řetězec znaků Unicode. Můžou to být řetězce, čísla nebo kalendářní data reprezentovaná v textovém formátu. Maximální délka řetězce je 268 435 456 znaků Unicode (kde každý znak Unicode je dva bajty) nebo 536 870 912 bajtů. |
logical |
Booleovská hodnota true nebo false . |
list |
Hodnota, která při výčtu vytvoří sekvenci hodnot. Další informace najdete v tématu Typy seznamů a Seznam hodnot . |
record |
Seřazená posloupnost polí. Každé pole obsahuje název pole a hodnotu pole. Další informace najdete v tématu Typy záznamů a Hodnoty záznamů. |
table |
Seřazená posloupnost řádků rozdělených do sloupců. Další informace najdete v druzích tabulek a hodnotách tabulek. |
function |
Hodnota, která mapuje sadu argumentů na jednu hodnotu. Další informace najdete v části Functions a typy funkcí . |
number |
Představuje libovolné číslo používané pro číselné a aritmetické operace. Pro více informací přejděte na . |
Decimal.Type |
Představuje 64bitové číslo s plovoucí řádovou čárkou (osm bajtů). Jedná se o nejběžnější typ čísla a odpovídá číslům, jak si je obvykle myslíte. I když je navržený tak, aby zpracovával čísla s desetinnými hodnotami, zpracovává také celá čísla.
Decimal.Type dokáže zpracovat záporné hodnoty od -1,79E +308 do –2,23E –308, 0 a kladné hodnoty od 2,23E –308 do 1,79E + 308. Například čísla jako 34, 34,01 a 34,000367063 jsou platná desetinná čísla. Největší přesnost, kterou lze reprezentovat v Decimal.Type , je 15 číslic dlouhé. Oddělovač desetinných míst může nastat kdekoli v čísle.
Decimal.Type odpovídá způsobu, jakým Excel ukládá čísla. Všimněte si, že binární číslo s plovoucí desetinou čárkou nemůže představovat všechna čísla v podporovaném rozsahu s přesností 100%. Menší rozdíly v přesnosti proto mohou nastat při reprezentaci určitých desetinných čísel. |
Currency.Type |
Tento datový typ má pevné umístění oddělovače desetinných míst. Oddělovač desetinných míst má vždy napravo čtyři číslice a umožňuje 19 významných číslic. Největší hodnota, kterou může představovat, je 922 337 203 685 477,5807 (kladné nebo záporné). Na rozdíl od Decimal.Type je Currency.Type vždy přesný a je tedy užitečný v případech, kdy nepřesnost zápisu s plovoucí desetinou čárkou může představovat chyby. |
Percentage.Type |
V zásadě je to stejné jako Decimal.Type , ale má masku pro formátování hodnot jako procentuální hodnoty. |
Int8.Type |
Představuje 8bitovou celočíselnou hodnotu (jednobajtů). Vzhledem k tomu, že se jedná o celé číslo, nemá číslice napravo od desetinného místa. Umožňuje 3 číslice; kladné nebo záporné celé číslo mezi –128 a 127. Stejně jako u Currency.Type může být Int8.Type užitečné v případech, kdy potřebujete ovládat zaokrouhlování. |
Int16.Type |
Představuje 16bitovou celočíselnou hodnotu se dvěma bajty. Vzhledem k tomu, že se jedná o celé číslo, nemá číslice napravo od desetinného místa. Umožňuje 6 číslic; kladné nebo záporné celé číslo mezi –32 768 (–2^15) a 32 767 (2^15-1). Stejně jako u Currency.Type může být Int16.Type užitečné v případech, kdy potřebujete ovládat zaokrouhlování. |
Int32.Type |
Představuje 32bitovou (čtyřbajtů) celočíselnou hodnotu. Vzhledem k tomu, že se jedná o celé číslo, nemá číslice napravo od desetinného místa. Umožňuje 10 číslic; kladné nebo záporné celé číslo mezi –2 147 483 648 (–2^31) a 2 147 483 647 (2^31–1). Stejně jako u Currency.Type může být Int32.Type užitečné v případech, kdy potřebujete ovládat zaokrouhlování. |
Int64.Type |
64bitová (osmibajtová) hodnota celého čísla se znaménkem. Vzhledem k tomu, že se jedná o celé číslo, nemá číslice napravo od desetinného místa. Umožňuje 19 číslic; kladné nebo záporné celé číslo mezi –9 223 372 036 854 775 808 (–2^63) a 9 223 372 036 854 775 807 (2^63–1). Může představovat největší možnou přesnost různých číselných datových typů. Stejně jako u Currency.Type může být Int64.Type užitečné v případech, kdy potřebujete ovládat zaokrouhlování. |
Byte.Type |
Představuje 8bitovou (jednobajtů) celočíselnou hodnotu bez znaménka. Vzhledem k tomu, že se jedná o celé číslo bez znaménka, neobsahuje číslice napravo od desetinného místa a může obsahovat pouze kladné hodnoty. Umožňuje 3 číslice; kladné číslo mezi 0 a 255. |
Single.Type |
Představuje číslo s plovoucí desetinnou čárkou s jednoduchou přesností. Má přibližný rozsah –3,99 X 1038 až 3,99 X 1038 a podporuje přibližně 9 číslic přesnosti. Může také představovat kladné a záporné nekonečno a NaN (Ne číslo). |
Double.Type |
Představuje číslo s plovoucí desetinnou čárkou s dvojitou přesností. Má přibližný rozsah –1,7976931348623158 X 10307 až 1,7976931348623158 X 10307 a podporuje přibližně 17 číslic přesnosti. Může také představovat kladné a záporné nekonečno a NaN (Ne číslo). |
Guid.Type |
Představuje 128bitovou textovou hodnotu skládající se z 32 šestnáctkových hodnot využívajících <8 šestnáctkových hodnot>-<4 šestnáctkové hodnoty>-<4 šestnáctkové hodnoty>-<4 šestnáctkové hodnoty>-<12 šestnáctkových hodnot>, které tvoří hodnotu GUID. |
none |
Datový typ, který klasifikuje žádné hodnoty. |
Jedinými dalšími běžně používanými *.Type
hodnotami jsou výčty. Další informace najdete v tématu Výčty.
Převod typu
Jazyk vzorců Power Query M obsahuje vzorce pro převod mezi typy. Následuje souhrn vzorců převodu v jazyce M.
Počet
Převod typu | Popis |
---|---|
Number.FromText(text jako text) jako číslo | Vrátí číselnou hodnotu z textové hodnoty. |
Number.ToText(jako číslo) jako text | Vrátí textovou hodnotu z číselné hodnoty. |
Number.From(hodnota jako jakékoli) jako číslo | Vrátí číselnou hodnotu z hodnoty. |
Byte.From(hodnota jako jakékoli) jako číslo | Vrátí 8bitovou celočíselnou hodnotu z dané hodnoty. |
Int8.From(hodnota jako jakékoli) jako číslo | Vrátí 8bitovou celočíselnou hodnotu z dané hodnoty. |
Int16.From(hodnota jako jakékoli) jako číslo | Vrátí 16bitovou celočíselnou hodnotu z dané hodnoty. |
Int32.From(hodnota jako jakékoli) jako číslo | Vrátí 32bitovou celočíselnou hodnotu z dané hodnoty. |
Int64.From(hodnota jako jakékoli) jako číslo | Vrátí 64bitovou celočíselnou hodnotu z dané hodnoty. |
Single.From(hodnota jako jakékoli) jako číslo | Vrátí hodnotu s jedním číslem z dané hodnoty. |
Double.From(hodnota jako jakékoli) jako číslo | Vrátí hodnotu typu Double číslo z dané hodnoty. |
Decimal.From(hodnota jako jakékoli) jako číslo | Vrátí hodnotu desetinného čísla z dané hodnoty. |
Currency.From(hodnota jako jakékoli) jako číslo | Vrátí hodnotu čísla měny z dané hodnoty. |
Percentage.From(hodnota jako jakékoli) jako číslo | Vrátí hodnotu procentuálního čísla z dané hodnoty. |
Text
Převod typu | Popis |
---|---|
Text.From(hodnota libovolného typu) jako text | Vrátí textovou reprezentaci čísla, data, času, data a času, datetimezone, logické hodnoty, doby trvání nebo binární hodnoty. |
Guid.From(hodnota jako text) jako text | Vrátí reprezentaci identifikátoru GUID zadaného textu. |
Logický
Převod typu | Popis |
---|---|
Logical.FromText(text jako text) jako logický | Vrátí logickou hodnotu true nebo false z textové hodnoty. |
Logical.ToText(logická jako logická) jako text | Vrátí textovou hodnotu z logické hodnoty. |
Logical.From(hodnota libovolného typu) jako logická hodnota | Vrátí logickou hodnotu z hodnoty. |
Date, Time, DateTime a DateTimeZone
Převod typu | Popis |
---|---|
. FromText(text jako text) jako datum, čas, datum a čas nebo datetimezone | Vrátí hodnotu date, time, datetime nebo datetimezone ze sady formátů kalendářních dat a hodnoty jazykové verze. |
. ToText(date, time, dateTime, or dateTimeZone as date, time, datetime, or datetimezone) jako text | Vrátí textovou hodnotu z hodnoty data, času, data a času nebo datetimezone. |
. From(value as any) | Vrátí hodnotu date, time, datetime nebo datetimezone z hodnoty. |
. ToRecord(date, time, dateTime nebo dateTimeZone as date, time, datetime, or datetimezone) | Vrátí záznam obsahující části hodnoty data, času, data a času nebo datetimezone. |