Típusok és típuskonvertálás
A Power Query M típusokkal osztályozza az értékeket, hogy strukturáltabb adatkészlettel rendelkezzen. Ez a cikk ismerteti a leggyakrabban használt M-típusokat, és azt, hogyan konvertálhat egy típust egy másik típusra.
Gyakran használt típusok
Az adattípusok minden olyan típusra vonatkoznak, amely az adott adatok szerkezetének tisztázására szolgál. A leggyakrabban használt adattípusok primitív típusok. Ezek a típusok a következők:
-
type any
, amely bármilyen értéket osztályba sorol. -
type null
, amely a null értéket osztályozza. -
type logical
, amely igaz és hamis értékeket sorol be. -
type number
, amely számértékeket sorol be. -
type time
, amely az időértékeket sorolja be. -
type date
, amely dátumértékeket sorol be. -
type datetime
, amely dátum/idő értékeket sorol be. -
type datetimezone
, amely a datetimezone értékeket sorolja be. -
type duration
, amely az időtartamértékeket sorolja be. -
type text
, amely a szöveges értékeket sorolja be. -
type binary
, amely bináris értékeket sorol be. -
type type
, amely típusértékeket sorol be. -
type list
, amely a listaértékeket sorolja be. -
type record
, amely a rekordértékeket osztályozza. -
type table
, amely a táblaértékeket sorolja be. -
type function
, amely a függvényértékeket sorolja be. -
type anynonnull
, amely a null értéket nem tartalmazó összes értéket osztályozza. -
type none
, amely nem sorol be értékeket.
Ezekről a típusokról további információt Típusokcímű témakörben talál.
Ezen gyakori adattípusok mellett adattípusok is vannak a *.Type
formátumot használva. A formátum leggyakrabban használt adattípusai a következők:
-
Byte.Type
, amely egy 8 bites számértéket sorol be. -
Int8.Type
, amely egy 8 bites számértéket sorol be. -
Int16.Type
, amely egy 16 bites számértéket sorol be. -
Int32.Type
, amely egy 32 bites számértéket sorol be. -
Int64.Type
, amely egy 64 bites számértéket sorol be. -
Single.Type
, amely egy 9 jegyű lebegő számértéket sorol be. -
Double.Type
, amely egy 17 jegyű lebegő számértéket sorol be. -
Decimal.Type
, amely egy 15 jegyű lebegő számértéket sorol be. -
Currency.Type
, amely egy 19 jegyű számértéket sorol be négy számjegygel a "." elválasztótól jobbra. -
Percentage.Type
, amely egy 15 jegyű számértéket sorol be maszkkal az érték százalékként való formázásához. -
Guid.Type
, amely a GUID szöveges értéket sorolja be.
A primitív típusok *.Type
formátumban is írhatók. Ezért írhat number
Number.Type
, record
Record.Type
stb.
Ha ezek közül bármelyiket használja, vegye figyelembe, hogy az összes M-kódhoz hasonlóan ezek a típusok is megkülönböztetik a kis- és nagybetűket.
Az alábbi táblázat további információkat tartalmaz ezekről a típusokról.
Adattípus | Leírás |
---|---|
any |
Az any adattípus az az állapot, amely akkor van megadva, ha egy érték nem rendelkezik explicit adattípus-definícióval. A any típus az az adattípus, amely az összes értéket osztályozza. |
binary |
A binary adattípus bármely más, bináris formátumú adat megjelenítésére használható. |
type |
Más értékeket osztályozó érték. További információ: Típusok. |
null |
Érték hiányát, vagy meghatározatlan vagy ismeretlen állapotú értéket jelöl. |
anynonnull |
Bármilyen nem nullázható típust jelöl. |
date |
Csak egy dátumot jelöl (nincs idő rész). |
time |
Csak időt jelöl (nincs dátumrész). |
datetime |
Dátum- és időértéket is jelöl. A dátum időrésze 1/300 másodperc (3,33 ms) egész többszöröseinek törtrészeként van tárolva. Az 1900 és 9999 közötti dátumok támogatottak. |
datetimezone |
A UTC dátumot és időt jelöl időzóna-eltolással. |
duration |
Az időtartamot jelöli. Ez a típus hozzáadható vagy kivonható egy datetime mezőből a megfelelő eredményekkel. További információ: Időtartam. |
text |
Unicode karakterlánc adatsor. Lehetnek szövegként ábrázolt karakterláncok, számok vagy dátumok. A sztringek maximális hossza 268 435 456 Unicode-karakter (ahol minden Unicode-karakter két bájt) vagy 536 870 912 bájt. |
logical |
Boolean érték true vagy false . |
list |
Érték, amely számbavételkor értéksorozatot hoz létre. További információkat a Listatípusok, valamint a Listaértékekalatt talál. |
record |
A mezők rendezett sorozata. Minden mező tartalmaz egy mezőnevet és egy mezőértéket. További információ: Rekordtípusok és Rekordértékek. |
table |
Rendezett sorok sorozata, oszlopokra bontva. További információ: Táblázattípusok és Táblaértékek. |
function |
Egy érték, amely egy argumentumkészletet egyetlen értékre képez le. További információ: Függvények és függvénytípusok. |
number |
A numerikus és aritmetikai műveletekhez használt számokat jelöli. További információért menjen a számúponthoz. |
Decimal.Type |
64 bites (nyolc bájtos) lebegőpontos számot jelöl. Ez a leggyakoribb számtípus, és a számoknak felel meg, ahogy általában gondol rájuk. Bár a törtértékekkel rendelkező számok kezelésére lett tervezve, egész számokat is kezel. A Decimal.Type -1,79E +308––2,23E –308, 0 és 2,23E –308 és 1,79E + 308 közötti negatív értékeket képes kezelni. Például az olyan számok, mint a 34, a 34.01 és a 34.000367063 érvényes tizedesjegyek. A Decimal.Type esetében az előforduló legnagyobb pontosság 15 számjegy hosszú. A decimális elválasztó a szám bármely pontján előfordulhat. A Decimal.Type megegyezik az Excel számainak tárolásával. Vegye figyelembe, hogy a bináris lebegőpontos számok nem jelölhetik a támogatott tartományon belüli összes számot 100% pontossággal. Így kisebb pontosságbeli különbségek fordulhatnak elő bizonyos tizedesjegyek ábrázolásakor. |
Currency.Type |
Ez az adattípus rögzített helyet biztosít a tizedeselválasztóhoz. A tizedesjel mindig négy számjegyből áll jobbra, és 19 számjegynyi pontosságot tesz lehetővé. A legnagyobb érték 922 337 203 685 477 5807 (pozitív vagy negatív). A Decimal.Type ellentétben a Currency.Type mindig pontos, ezért olyan esetekben hasznos, amikor a lebegőpontos jelölés pontatlansága hibákat eredményezhet. |
Percentage.Type |
Alapvetően ugyanaz, mint egy Decimal.Type , de maszkot tartalmaz az értékek százalékos értékként való formázásához. |
Int8.Type |
Egy 8 bites (egy bájtos) aláírt egész számértéket jelöl. Mivel egész szám, nem rendelkezik számjegyekkel a tizedesvessző jobb oldalán. 3 számjegyet tesz lehetővé; pozitív vagy negatív egész szám –128 és 127 között. Ugyanúgy, mint a Currency.Type , a Int8.Type is hasznos lehet olyan esetekben, amikor a kerekítést kell szabályozni. |
Int16.Type |
16 bites (két bájtos) aláírt egész számértéket jelöl. Mivel egész szám, nem rendelkezik számjegyekkel a tizedesvessző jobb oldalán. 6 számjegyet tesz lehetővé; pozitív vagy negatív egész szám –32 768 (–2^15) és 32 767 (2^15–1) között. Ugyanúgy, mint a Currency.Type , a Int16.Type is hasznos lehet olyan esetekben, amikor a kerekítést kell szabályozni. |
Int32.Type |
32 bites (négy bájtos) aláírt egész számértéket jelöl. Mivel egész szám, nem rendelkezik számjegyekkel a tizedesvessző jobb oldalán. 10 számjegyet tesz lehetővé; pozitív vagy negatív egész szám –2 147 483 648 (–2^31) és 2 147 483 647 (2^31–1) között. Ugyanúgy, mint a Currency.Type , a Int32.Type is hasznos lehet olyan esetekben, amikor a kerekítést kell szabályozni. |
Int64.Type |
64 bites (nyolc bájtos) aláírt egész számértéket jelöl. Mivel egész szám, nem rendelkezik számjegyekkel a tizedesvessző jobb oldalán. 19 számjegyet tesz lehetővé; pozitív vagy negatív egész szám –9 223 372 036 854 775 808 (–2^63) és 9 223 372 036 854 775 807 (2^63–1). A különböző numerikus adattípusok lehető legnagyobb pontosságát képviselheti. Ugyanúgy, mint a Currency.Type , a Int64.Type is hasznos lehet olyan esetekben, amikor a kerekítést kell szabályozni. |
Byte.Type |
Egy 8 bites (egy bájtos) nem aláírt egész számértéket jelöl. Mivel ez egy aláíratlan egész szám, nem tartalmaz számjegyeket a tizedesvessző jobb oldalán, és csak pozitív értékeket tartalmazhat. 3 számjegyet tesz lehetővé; pozitív szám 0 és 255 között. |
Single.Type |
Egy pontosságú lebegőpontos számot jelöl. Hozzávetőleges tartománya -3,99 X 1038 3,99 X 1038, és körülbelül 9 számjegynyi pontosságot támogat. A pozitív és negatív végtelent és a NaN-t (Nem szám) is jelölheti. |
Double.Type |
Dupla pontosságú lebegőpontos számot jelöl. Körülbelül -1,7976931348623158 X 10307 és 1,7976931348623158 X 10307, és körülbelül 17 számjegynyi pontosságot támogat. A pozitív és negatív végtelent és a NaN-t (Nem szám) is jelölheti. |
Guid.Type |
128 bites szöveges értéket jelöl, amely 32 hexadecimális értékből áll, <8 hexa érték>-<4 hexa érték>-<4 hexa érték>-<4 hexa érték>-<12 hexa érték>, amelyek a GUID értéket alkotják. |
none |
Az az adattípus, amely nem sorol be értékeket. |
Az egyetlen gyakran használt *.Type
érték az enumerálás. További információért látogasson el a Felsorolásokoldalra.
Típuskonverzió
A Power Query M képletnyelve képletekkel rendelkezik a típusok közötti konvertáláshoz. Az alábbiakban az M konverziós képleteit összegezzük.
Szám
Típuskonverzió | Leírás |
---|---|
Number.FromText(szöveg számként) | Számértéket ad vissza egy szöveges értékből. |
Number.ToText(mint szám) mint szöveg | Szöveges értéket ad vissza egy számértékből. |
Number.From(bármely érték) számként | Számértéket ad vissza egy értékből. |
Byte.From(bármely érték) számként | Egy 8 bites egész számértéket ad vissza a megadott értékből. |
Int8.From(bármely érték) számként | Egy 8 bites egész számértéket ad vissza a megadott értékből. |
Int16.From(bármely érték) számként | 16 bites egész számértéket ad vissza a megadott értékből. |
Int32.From(bármely érték) számként | Egy 32 bites egész számértéket ad vissza a megadott értékből. |
Int64.From(bármely érték) számként | 64 bites egész számértéket ad vissza a megadott értékből. |
Single.From(bármely érték) számként | Egyetlen számértéket ad vissza a megadott értékből. |
Double.From(bármely érték) számként | Dupla számértéket ad vissza a megadott értékből. |
Decimal.From(bármely érték) számként | Decimális számértéket ad vissza a megadott értékből. |
Currency.From(bármely érték) számként | Egy pénznemszámértéket ad vissza a megadott értékből. |
Percentage.From(bármely érték) számként | Százalékos számértéket ad vissza a megadott értékből. |
Szöveg
Típuskonverzió | Leírás |
---|---|
Text.From(bármely érték) szövegként | Egy szám, dátum, idő, datetime, datetimezone, logikai, időtartam vagy bináris érték szöveges ábrázolását adja vissza. |
Guid.From(érték szövegként) | A megadott szöveg GUID-ábrázolását adja vissza. |
Logikai
Típuskonverzió | Leírás |
---|---|
Logical.FromText(szöveg szövegként) logikai | Igaz vagy hamis logikai értéket ad vissza egy szöveges értékből. |
Logical.ToText(logikájuk szerint logikai) szövegként | Egy logikai érték szöveges értékét adja vissza. |
Logical.From(bármilyen érték) mint logikai | Logikai értéket ad vissza egy értékből. |
Dátum, idő, datetime és datetimezone
Típuskonverzió | Leírás |
---|---|
. FromText(szöveg szövegként) dátumként, időként, dátum/idő vagy dátum/időzónaként | Dátum, idő, dátum/idő vagy dátum/időzón értéket ad vissza a dátumformátumok és a kulturális értékek készletéből. |
. ToText(date, time, dateTime, or dateTimeZone as date, time, datetime or datetimezone) as date, time, datetime or datetimezone) as text | Szöveges értéket ad vissza dátum, idő, dátum/idő vagy datetimezone értékből. |
. From(value as any) | Dátum, idő, dátum/idő vagy dátum/időzón értéket ad vissza egy értékből. |
. ToRecord(date, time, dateTime, or dateTimeZone as date, time, datetime vagy datetimezone) | Olyan rekordot ad vissza, amely a dátum, az idő, a dátum/idő vagy a datetimezone érték részeit tartalmazza. |