Zdieľať cez


Typy a konverzia typu

Power Query M používa typy na klasifikáciu hodnôt, aby mali štruktúrovanejšiu množinu údajov. Tento článok popisuje najčastejšie používané typy jazyka M a spôsob konvertovania jedného typu na iný typ.

Bežne používané typy

Typy údajov odkazujú na akýkoľvek typ, ktorý sa používa na objasnenie štruktúry konkrétnych údajov. Najčastejšie používané typy údajov sú primitívne typy. Tieto typy zahŕňajú:

  • type any, ktorý klasifikuje ľubovoľnú hodnotu.
  • type null, ktorý klasifikuje hodnotu null.
  • type logical, ktorý klasifikuje hodnoty true a false.
  • type number, ktorý klasifikuje číselné hodnoty.
  • type time, ktorý klasifikuje časové hodnoty.
  • type date, ktorý klasifikuje dátumové hodnoty.
  • type datetime, ktorý klasifikuje hodnoty datetime.
  • type datetimezone, ktorý klasifikuje hodnoty datetimezone.
  • type duration, ktorý klasifikuje hodnoty trvania.
  • type text, ktorý klasifikuje textové hodnoty.
  • type binary, ktorý klasifikuje binárne hodnoty.
  • type type, ktorý klasifikuje hodnoty typov.
  • type list, ktorý klasifikuje hodnoty zoznamu.
  • type record, ktorý klasifikuje hodnoty záznamov.
  • type table, ktorý klasifikuje hodnoty tabuľky.
  • type function, ktorý klasifikuje hodnoty funkcie.
  • type anynonnull, ktorý klasifikuje všetky hodnoty okrem null.
  • type none, ktorý klasifikuje žiadne hodnoty.

Ďalšie informácie o týchto typoch nájdete v téme Typy.

Okrem týchto bežných typov údajov existuje aj množina typov údajov s použitím formátu *.Type. Najčastejšie používanými typmi údajov v tomto formáte sú:

  • Byte.Type, ktorý klasifikuje 8-bitovú číselnú hodnotu.
  • Int8.Type, ktorý klasifikuje 8-bitovú číselnú hodnotu.
  • Int16.Type, ktorý klasifikuje 16-bitovú číselnú hodnotu.
  • Int32.Type, ktorý klasifikuje 32-bitovú číselnú hodnotu.
  • Int64.Type, ktorý klasifikuje 64-bitovú číselnú hodnotu.
  • Single.Type, ktorý klasifikuje 9-cifernú hodnotu s pohyblivou číselnou hodnotou.
  • Double.Type, ktorý klasifikuje 17-cifernú hodnotu s pohyblivou číselnou hodnotou.
  • Decimal.Type, ktorý klasifikuje 15-cifernú číselnú hodnotu s pohyblivou desatinnou čiarkou.
  • Currency.Type, ktorý klasifikuje 19-cifernú číselnú hodnotu so štyrmi číslicami napravo od oddeľovača .
  • Percentage.Type, ktorý klasifikuje 15-cifernú číselnú hodnotu s maskou na formátovanie hodnoty ako percentuálnu hodnotu.
  • Guid.Type, ktorý klasifikuje textovú hodnotu GUID.

Primitívne typy možno zapísať aj vo formáte *.Type. Preto môžete number zapisovať ako Number.Typerecord ako Record.Typeatď.

Ak používate niektorý z týchto typov, mali by ste mať na pamäti, že tak ako v prípade všetkých kódov jazyka M sa v týchto typoch rozlišujú veľké a malé písmená.

Nasledujúca tabuľka obsahuje ďalšie informácie o každom z týchto typov.

Typ údajov Description
any Typ any údajov je stav zadaný vtedy, keď hodnota nemá explicitnú definíciu typu údajov. Typ any je typ údajov, ktorý klasifikuje všetky hodnoty.
binary Typ binary údajov možno použiť na znázornenie akýchkoľvek iných údajov v binárnom formáte.
type Hodnota, ktorá klasifikuje iné hodnoty. Ďalšie informácie nájdete v Typy.
null Predstavuje absenciu hodnoty alebo hodnotu neurčitého alebo neznámeho stavu.
anynonnull Predstavuje akýkoľvek typ, ktorý nie je možné zrušiť.
date Predstavuje len dátum (bez časovej časti).
time Predstavuje len čas (bez dátumovej časti).
datetime Predstavuje hodnotu dátumu aj času. Časová časť dátumu sa ukladá ako zlomok s celými násobkami 1/300 sekúnd (3,33 ms). Podporujú sa dátumy v rozmedzí od roku 1900 do roku 9999.
datetimezone Predstavuje dátum a čas vo formáte KOORDINOVANÉHO ČASU s posunom časového pásma.
duration Predstavuje časový čas. Tento typ je možné pridať alebo odpočítať od datetime poľa so správnymi výsledkami. Ďalšie informácie nájdete v trvaní.
text Reťazec údajov znakov Unicode. Môže ísť o reťazce, čísla alebo dátumy zobrazené v textovom formáte. Maximálna dĺžka reťazca je 268 435 456 znakov Unicode (kde každý znak Unicode je dva bajly) alebo 536 870 912 bajtov.
logical Booleovská hodnota hodnoty true alebo false.
list Hodnota, ktorá pri vyčíslení vytvorí postupnosť hodnôt. Ďalšie informácie nájdete v Zoznam typov a Hodnoty zoznamu.
record Zoradená postupnosť polí. Každé pole obsahuje názov poľa a hodnotu poľa. Ďalšie informácie nájdete v Typoch záznamov a Hodnoty záznamu.
table Zoradená postupnosť riadkov rozdelená do stĺpcov. Ďalšie informácie nájdete v Typy tabuliek a hodnoty tabuľky.
function Hodnota, ktorá mapuje množinu argumentov na jednu hodnotu. Ďalšie informácie nájdete v Functions a Typy funkcií.
number Predstavuje ľubovoľné číslo používané na numerické a aritmetické operácie. Ďalšie informácie nájdete v číslo.
Decimal.Type Predstavuje 64-bitové (8-bajtové) číslo s pohyblivou desatinnou čiarkou. Ide o najbežnejší typ čísla a zodpovedá číslam, ako si ich zvyčajne predstavujeme. Napriek tomu, že je určené na spracovanie čísel s desatinnou hodnotou, spracúva aj celé čísla. Decimal.Type dokáže spracovať záporné hodnoty od – 1,79E +308 do –2,23E – 308, 0 a kladné hodnoty od 2,23E – 308 do 1,79E + 308. Napríklad čísla ako 34 34,01 a 34,000367063 sú platné desatinné čísla. Najvyššia presnosť, ktorá môže byť vyjadrená v Decimal.Type, má 15 číslic. Oddeľovač desatinných miest sa môže nachádzať kdekoľvek v čísle. Decimal.Type zodpovedá spôsobu, akým program Excel ukladá svoje čísla. Všimnite si, že binárne číslo s pohyblivou rádovou čiarkou nemôže predstavovať všetky čísla v rámci podporovaného rozsahu s presnosťou 100%. Preto sa pri predstavujúcich určité desatinné čísla môžu vyskytnúť menšie rozdiely v presnosti.
Currency.Type Tento typ údajov má pevné umiestnenie oddeľovača desatinných miest. Oddeľovač desatinných miest má vždy štyri číslice vpravo a umožňuje 19 číslic. Najväčšia hodnota, ktorá môže predstavovať, je 922 337 203 685 477,5807 (kladná alebo záporná). Na rozdiel od Decimal.Typeje Currency.Type vždy presná a je užitočná v prípadoch, keď môžu chyby spôsobovať nezarážka zápisu s pohyblivou rádovou čiarkou.
Percentage.Type V podstate rovnaký ako Decimal.Type, ale má masku na formátovanie hodnôt ako percentuálnu hodnotu.
Int8.Type Predstavuje 8-bitovú (jednobajtovú) celočíselnú hodnotu so 4-bitovým číslom. Keďže ide o celé číslo, nemá žiadne číslice napravo od desatinnej čiarky. To umožňuje 3 číslice, po 3 číslice. kladné alebo záporné celé číslo v rozsahu – 128 až 127. Rovnako ako v prípade Currency.Typemôže byť Int8.Type užitočný v prípadoch, kde je potrebné mať zaokrúhlenie pod kontrolou.
Int16.Type Predstavuje 16-bitovú (dvojbajtovú) celočíselnú hodnotu so 4-bitovým číslom. Keďže ide o celé číslo, nemá žiadne číslice napravo od desatinnej čiarky. To umožňuje 6 číslic; kladné alebo záporné celé číslo medzi – 32 768 (– 2 ^ 15) a 32 767 (2^15-1). Rovnako ako v prípade Currency.Typemôže byť Int16.Type užitočný v prípadoch, kde je potrebné mať zaokrúhlenie pod kontrolou.
Int32.Type Predstavuje 32-bitovú (štvorbajtovú) celočíselnú hodnotu so 4-bitovým číslom. Keďže ide o celé číslo, nemá žiadne číslice napravo od desatinnej čiarky. To umožňuje 10 číslic; kladné alebo záporné celé číslo medzi – 2 147 483 648 (– 2 ^ 31) do 2 147 483 647 (2^31 – 1). Rovnako ako v prípade Currency.Typemôže byť Int32.Type užitočný v prípadoch, kde je potrebné mať zaokrúhlenie pod kontrolou.
Int64.Type Predstavuje 64-bitovú (8-bajtovú) celočíselnú hodnotu so 64-bitovým číslom. Keďže ide o celé číslo, nemá žiadne číslice napravo od desatinnej čiarky. To umožňuje 19 číslic; kladné alebo záporné celé číslo medzi – 9 223 372 036 854 775 808 (– 2 ^63) a 9 223 372 036 854 775 807 (2^63 – 1). Môže predstavovať najväčšiu možnú presnosť pre rôzne typy číselných údajov. Rovnako ako v prípade Currency.Typemôže byť Int64.Type užitočný v prípadoch, kde je potrebné mať zaokrúhlenie pod kontrolou.
Byte.Type Predstavuje 8-bitovú (jednobajtovú) celočíselnú hodnotu bez zátvorky. Keďže ide o celé číslo, ktoré nie je zapísané, nemá žiadne číslice napravo od desatinnej čiarky a môže obsahovať iba kladné hodnoty. To umožňuje 3 číslice, po 3 číslice. kladné číslo v rozsahu od 0 do 255.
Single.Type Predstavuje číslo s pohyblivou rádovou čiarkou s jednoduchou presnosťou. Má približný rozsah –3,99 X 1038 do 3,99 X 1038 a podporuje približne 9 číslic presnosti. Môže tiež predstavovať kladné a záporné nekonečno a NaN (nečíslo).
Double.Type Predstavuje číslo s pohyblivou rádovou čiarkou s dvojitou presnosťou. Má približný rozsah –1,7976931348623158 X 10307 do 1,7976931348623158 x 10307 a podporuje približne 17 číslic presnosti. Môže tiež predstavovať kladné a záporné nekonečno a NaN (nečíslo).
Guid.Type Predstavuje 128-bitovú textovú hodnotu pozostávajúcu z 32 šestnástkových hodnôt s použitím činiteľa tvaru <8 šestnástkových hodnôt>–<4 šestnástkových hodnôt>–<4 šestnástkových hodnôt>–<4 šestnástkových hodnôt>–<12 šestnástkových hodnôt>, ktoré tvoria hodnotu GUID.
none Typ údajov, ktorý klasifikuje žiadne hodnoty.

Jedinými ďalšími bežne používanými *.Type hodnotami sú enumerácie. Ďalšie informácie nájdete v enumerácie.

Konverzia typu

Jazyk vzorcov Power Query M má vzorce na konverziu medzi typmi. Nasleduje súhrn vzorcov konverzie v jazyku M.

Číslo

Konverzia typu Description
Number.FromText(text ako text) ako číslo Vráti číselnú hodnotu z textovej hodnoty.
Number.ToText(číslo ako číslo) ako text Vráti textovú hodnotu z číselnej hodnoty.
Number.From(ľubovoľná hodnota) ako číslo Vráti číselnú hodnotu z hodnoty.
Byte.From(ľubovoľná hodnota) ako číslo Vráti 8-bitovú celočíselnú hodnotu danej hodnoty.
Int8.From(ľubovoľná hodnota) ako číslo Vráti 8-bitovú celočíselnú hodnotu danej hodnoty.
Int16.From(ľubovoľná hodnota) ako číslo Vráti 16-bitovú celočíselnú hodnotu danej hodnoty.
Int32.From(ľubovoľná hodnota) ako číslo Vráti 32-bitovú celočíselnú hodnotu danej hodnoty.
Int64.From(ľubovoľná hodnota) ako číslo Vráti 64-bitovú celočíselnú hodnotu danej hodnoty.
Single.From(ľubovoľná hodnota) ako číslo Vráti hodnotu čísla typu Single z danej hodnoty.
Double.From(ľubovoľná hodnota) ako číslo Vráti hodnotu čísla typu Double z danej hodnoty.
Decimal.From(ľubovoľná hodnota) ako číslo Vráti hodnotu desatinného čísla danej hodnoty.
Currency.From(ľubovoľná hodnota) ako číslo Vráti hodnotu čísla Mena z danej hodnoty.
Percentage.From(ľubovoľná hodnota) ako číslo Vráti percentuálnu číselnú hodnotu danej hodnoty.

Text

Konverzia typu Description
Text.From(ľubovoľná hodnota) ako text Vráti textové vyjadrenie čísla, dátumu, času, dátumu a času, hodnoty dátumu, času a časového pásma, logickej hodnoty, trvania alebo binárnej hodnoty.
Guid.From(hodnota ako text) ako text Vráti vyjadrenie identifikátora GUID zadaného textu.

Logický

Konverzia typu Description
Logical.FromText(text ako text) ako logický Vráti logickú hodnotu true alebo false z textovej hodnoty.
Logical.ToText(logická ako logická) ako text Vráti textovú hodnotu z logickej hodnoty.
Logical.From(ľubovoľná hodnota) ako logická hodnota Vráti logickú hodnotu z hodnoty.

Dátum, čas, dátum a čas, a hodnota dátumu, času a časového pásma

Konverzia typu Description
. FromText(text ako text) ako dátum, čas, dátum a čas, a hodnota dátumu, času a časového pásma Vráti hodnotu dátumu, času, dátumu a času, alebo hodnotu dátumu, času a časového pásma z množiny formátov dátumov a hodnoty jazykovej verzie.
. ToText(dátum, čas, dátum a čas, a hodnota dátumu, času a časového pásma, ako text: dátum, čas, dátum a čas, a hodnota dátumu, času a časového pásma) Vráti textovú hodnotu z hodnoty dátumu, času, dátumu a času, a hodnoty dátumu, času a časového pásma.
. From(ľubovoľná hodnota) Vráti hodnotu dátumu, času, dátumu a času, alebo hodnotu dátumu, času a časového pásma z ovej hodnoty.
. ToRecord(dátum, čas, dátum a čas, a hodnota dátumu, času a časového pásma, ako dátum, čas, dátum a čas, a hodnota dátumu, času a časového pásma) Vráti záznam obsahujúci časti hodnoty dátumu, času, dátumu a času, a hodnotu dátumu, času a časového pásma.