Κοινή χρήση μέσω


Τύποι και μετατροπή τύπων

Η Γλώσσα Power Query M χρησιμοποιεί τύπους για την ταξινόμηση τιμών ώστε να έχουν ένα πιο δομημένο σύνολο δεδομένων. Αυτό το άρθρο περιγράφει τους πιο συχνά χρησιμοποιούμενους τύπους M και τον τρόπο μετατροπής ενός τύπου σε έναν άλλο τύπο.

Τύποι που χρησιμοποιούνται συχνά

Οι τύποι δεδομένων αναφέρονται σε οποιονδήποτε τύπο χρησιμοποιείται για την αποσαφήνιση της δομής συγκεκριμένων δεδομένων. Οι πιο συνηθισμένοι τύποι δεδομένων είναι στοιχειώδεις τύποι. Αυτοί οι τύποι περιλαμβάνουν:

  • type any, το οποίο ταξινομεί οποιαδήποτε τιμή.
  • type null, το οποίο ταξινομεί την τιμή null.
  • type logical, το οποίο ταξινομεί τις τιμές true και false.
  • type number, το οποίο ταξινομεί τις αριθμητικές τιμές.
  • type time, το οποίο ταξινομεί τις τιμές ώρας.
  • type date, το οποίο ταξινομεί τις τιμές ημερομηνίας.
  • type datetime, το οποίο ταξινομεί τις τιμές ημερομηνίας/ώρας.
  • type datetimezone, το οποίο ταξινομεί τις τιμές ζώνης ημερομηνίας/ώρας.
  • type duration, το οποίο ταξινομεί τις τιμές διάρκειας.
  • type text, το οποίο ταξινομεί τις τιμές κειμένου.
  • type binary, το οποίο ταξινομεί τις δυαδικές τιμές.
  • type type, το οποίο ταξινομεί τις τιμές τύπου.
  • type list, το οποίο ταξινομεί τις τιμές λίστας.
  • type record, το οποίο ταξινομεί τις τιμές εγγραφών.
  • type table, το οποίο ταξινομεί τις τιμές πίνακα.
  • type function, το οποίο ταξινομεί τις τιμές συναρτήσεων.
  • type anynonnull, το οποίο ταξινομεί όλες τις τιμές εξαιρώντας την τιμή null.
  • type none, το οποίο δεν ταξινομεί τιμές.

Για περισσότερες πληροφορίες σχετικά με αυτούς τους τύπους, μεταβείτε στην Τύποι.

Εκτός από αυτούς τους συνήθεις τύπους δεδομένων, υπάρχει επίσης ένα σύνολο τύπων δεδομένων που χρησιμοποιούν τη μορφή *.Type. Οι πιο συνήθεις τύποι δεδομένων αυτής της μορφής είναι οι εξής:

  • Byte.Type, το οποίο ταξινομεί μια τιμή αριθμού 8 bit.
  • Int8.Type, το οποίο ταξινομεί μια τιμή αριθμού 8 bit.
  • Int16.Type, το οποίο ταξινομεί μια τιμή αριθμού 16 bit.
  • Int32.Type, το οποίο ταξινομεί μια τιμή αριθμού 32 bit.
  • Int64.Type, το οποίο ταξινομεί μια τιμή αριθμού 64 bit.
  • Single.Type, το οποίο ταξινομεί μια τιμή 9-ψήφιου αριθμού κινητής υποδιαστολής.
  • Double.Type, το οποίο ταξινομεί μια 17-ψήφιο αριθμό κινητής υποδιαστολής.
  • Decimal.Type, το οποίο ταξινομεί μια τιμή 15-ψήφιου αριθμού κινητής υποδιαστολής.
  • Currency.Type, η οποία ταξινομεί μια τιμή αριθμού 19 ψηφίων με τέσσερα ψηφία δεξιά της διαχωριστικής τιμής ".".
  • Percentage.Type, το οποίο ταξινομεί μια τιμή αριθμού 15 ψηφίων με μια μάσκα για να μορφοποιήσετε την τιμή ως ποσοστό.
  • Guid.Type, το οποίο ταξινομεί μια τιμή κειμένου GUID.

Οι στοιχειώδεις τύποι μπορούν επίσης να εγγραφούν στη μορφή *.Type. Επομένως, μπορείτε να γράψετε number ως Number.Type, record ως Record.Typeκαι ούτω καθεξής.

Όταν χρησιμοποιείτε οποιονδήποτε από αυτούς τους τύπους, θα πρέπει να γνωρίζετε ότι, όπως όλοι οι κωδικοί M, αυτοί οι τύποι κάνουν διάκριση πεζών-κεφαλαίων.

Ο παρακάτω πίνακας περιέχει περισσότερες πληροφορίες σχετικά με κάθε έναν από αυτούς τους τύπους.

Τύπος δεδομένων Περιγραφή
any Ο any τύπος δεδομένων είναι η κατάσταση που δίνεται όταν μια τιμή δεν διαθέτει ρητό ορισμό τύπου δεδομένων. Ο τύπος any είναι ο τύπος δεδομένων που ταξινομεί όλες τις τιμές.
binary Ο binary τύπος δεδομένων μπορεί να χρησιμοποιηθεί για την αναπαράσταση οποιωνδήποτε άλλων δεδομένων με δυαδική μορφή.
type Μια τιμή που ταξινομεί άλλες τιμές. Για περισσότερες πληροφορίες, μεταβείτε στην Τύποι.
null Αντιπροσωπεύει την απουσία μιας τιμής ή μια τιμή απροσδιόριστης ή άγνωστης κατάστασης.
anynonnull Αντιπροσωπεύει οποιονδήποτε τύπο δεν επιδέχεται τιμές null.
date Αντιπροσωπεύει απλώς μια ημερομηνία (χωρίς τμήμα ώρας).
time Αντιπροσωπεύει μόνο την ώρα (χωρίς τμήμα ημερομηνίας).
datetime Αντιπροσωπεύει μια τιμή ημερομηνίας και ώρας. Το τμήμα ώρας μιας ημερομηνίας αποθηκεύεται ως κλάσμα σε ολόκληρα πολλαπλάσια του 1/300 δευτερολέπτου (3,33 ms). Υποστηρίζονται οι ημερομηνίες μεταξύ των ετών 1900 και 9999.
datetimezone Αντιπροσωπεύει μια ημερομηνία και ώρα UTC με μετατόπιση ζώνης ώρας.
duration Αντιπροσωπεύει μια χρονική διάρκεια. Αυτός ο τύπος μπορεί να προστεθεί ή να αφαιρείται από ένα πεδίο datetime με τα σωστά αποτελέσματα. Για περισσότερες πληροφορίες, μεταβείτε στο Duration.
text Μια συμβολοσειρά δεδομένων χαρακτήρων Unicode. Μπορεί να είναι συμβολοσειρές, αριθμοί ή ημερομηνίες που αντιπροσωπεύονται σε μορφή κειμένου. Το μέγιστο μήκος συμβολοσειράς είναι 268.435.456 χαρακτήρες Unicode (όπου κάθε χαρακτήρας Unicode είναι δύο byte) ή 536.870.912 byte.
logical Μια δυαδική τιμή είτε true, είτε false.
list Μια τιμή η οποία παράγει μια ακολουθία τιμών κατά την απαρίθμηση. Για περισσότερες πληροφορίες, μεταβείτε στις Τύποι λίστας και Τιμές λίστας.
record Μια ταξινομημένη ακολουθία πεδίων. Κάθε πεδίο περιέχει ένα όνομα πεδίου και μια τιμή πεδίου. Για περισσότερες πληροφορίες, μεταβείτε στις Τύποι εγγραφών και τιμές εγγραφής.
table Μια ταξινομημένη ακολουθία γραμμών διαιρεμένων σε στήλες. Για περισσότερες πληροφορίες, μεταβείτε στις Τύποι πινάκων και Τιμές πίνακα.
function Μια τιμή που αντιστοιχίζει ένα σύνολο ορισμάτων σε μια μοναδική τιμή. Για περισσότερες πληροφορίες, μεταβείτε στις Functions και Τύποι συναρτήσεων.
number Αντιπροσωπεύει οποιονδήποτε αριθμό χρησιμοποιείται για αριθμητικές πράξεις. Για περισσότερες πληροφορίες, μεταβείτε στο Αριθμός.
Decimal.Type Αντιπροσωπεύει έναν αριθμό κινητής υποδιαστολής 64 bit (οκτώ byte). Είναι ο πιο κοινός τύπος αριθμού και αντιστοιχεί σε αριθμούς όπως τους φαντάζεστε συνήθως. Παρόλο που έχει σχεδιαστεί για να χειρίζεται αριθμούς με κλασματικές τιμές, χειρίζεται επίσης ακέραιους αριθμούς. Η Decimal.Type μπορεί να χειριστεί αρνητικές τιμές από –1,79E +308 έως –2,23E –308, 0 και θετικές τιμές από 2,23E –308 έως 1,79E + 308. Για παράδειγμα, αριθμοί όπως 34, 34,01 και 34,000367063 είναι έγκυροι δεκαδικοί αριθμοί. Η μεγαλύτερη ακρίβεια που μπορεί να αναπαραταθεί σε μια Decimal.Type είναι 15 ψηφία. Η υποδιαστολή μπορεί να προκύψει οπουδήποτε στον αριθμό. Η Decimal.Type αντιστοιχεί στον τρόπο με τον οποίο το Excel αποθηκεύει τους αριθμούς του. Σημειώστε ότι ένας αριθμός δυαδικού κινητής υποδιαστολής δεν μπορεί να αντιπροσωπεύει όλους τους αριθμούς εντός της υποστηριζόμενης περιοχής του με ακρίβεια 100%. Επομένως, ενδέχεται να προκύψουν μικρές διαφορές ακρίβειας όταν αναπαριστάτε συγκεκριμένους δεκαδικούς αριθμούς.
Currency.Type Αυτός ο τύπος δεδομένων έχει μια σταθερή θέση για την υποδιαστολή. Η υποδιαστολή έχει πάντα τέσσερα ψηφία δεξιά και επιτρέπει 19 ψηφία σημαντικότητας. Η μεγαλύτερη τιμή που μπορεί να αντιπροσωπεύει είναι 922.337.203.685.477,5807 (θετική ή αρνητική). Σε αντίθεση με Decimal.Type, η Currency.Type είναι πάντα ακριβής και, επομένως, είναι χρήσιμη σε περιπτώσεις όπου η αναφορά σημειογραφίας κινητής υποδιαστολής μπορεί να παρουσιάσει σφάλματα.
Percentage.Type Ουσιαστικά όμοια με μια Decimal.Type, αλλά έχει μια μάσκα για να μορφοποιήσετε τις τιμές ως τιμή ποσοστού.
Int8.Type Αντιπροσωπεύει μια τιμή ακέραιου 8 bit (ένα byte). Επειδή είναι ακέραιος, δεν έχει ψηφία δεξιά από την υποδιαστολή. Επιτρέπει 3 ψηφία. ένας θετικός ή αρνητικός ακέραιος αριθμός μεταξύ των –128 και 127. Όπως και με τα Currency.Type, η Int8.Type μπορεί να είναι χρήσιμη σε περιπτώσεις όπου χρειάζεται να ελέγχετε τη στρογγυλοποίηση.
Int16.Type Αντιπροσωπεύει μια τιμή ακέραιου 16 bit (δύο byte). Επειδή είναι ακέραιος, δεν έχει ψηφία δεξιά από την υποδιαστολή. Επιτρέπει 6 ψηφία. ένας θετικός ή αρνητικός ακέραιος αριθμός μεταξύ των –32.768 (–2^15) και 32.767 (2^15-1). Όπως και με τα Currency.Type, η Int16.Type μπορεί να είναι χρήσιμη σε περιπτώσεις όπου χρειάζεται να ελέγχετε τη στρογγυλοποίηση.
Int32.Type Αντιπροσωπεύει μια τιμή ακέραιου 32 bit (τέσσερα byte). Επειδή είναι ακέραιος, δεν έχει ψηφία δεξιά από την υποδιαστολή. Επιτρέπει 10 ψηφία. ένας θετικός ή αρνητικός ακέραιος αριθμός μεταξύ των –2.147.483.648 (–2^31) και 2.147.483.647 (2^31–1). Όπως και με τα Currency.Type, η Int32.Type μπορεί να είναι χρήσιμη σε περιπτώσεις όπου χρειάζεται να ελέγχετε τη στρογγυλοποίηση.
Int64.Type Αντιπροσωπεύει μια τιμή ακέραιου 64 bit (οκτώ byte). Επειδή είναι ακέραιος, δεν έχει ψηφία δεξιά από την υποδιαστολή. Επιτρέπει 19 ψηφία. ένας θετικός ή αρνητικός ακέραιος αριθμός μεταξύ των –9.223.372.036.854.775.808 (–2^63) και 9.223.372.036.854.775.807 (2^63–1). Μπορεί να αντιπροσωπεύσει τη μεγαλύτερη δυνατή ακρίβεια από τους διάφορους τύπους αριθμητικών δεδομένων. Όπως και με τα Currency.Type, η Int64.Type μπορεί να είναι χρήσιμη σε περιπτώσεις όπου χρειάζεται να ελέγχετε τη στρογγυλοποίηση.
Byte.Type Αντιπροσωπεύει μια ακέραια τιμή 8 bit (ένα byte). Επειδή είναι ένας ακέραιος χωρίς υπογραφή, δεν έχει ψηφία δεξιά από την υποδιαστολή και μπορεί να περιέχει μόνο θετικές τιμές. Επιτρέπει 3 ψηφία. ένας θετικός αριθμός μεταξύ 0 και 255.
Single.Type Αντιπροσωπεύει έναν αριθμό κινητής υποδιαστολής μοναδικής ακρίβειας. Έχει κατά προσέγγιση εύρος –3,99 X 1038 έως 3,99 X 1038 και υποστηρίζει περίπου 9 ψηφία ακρίβειας. Μπορεί επίσης να αντιπροσωπεύει θετικό και αρνητικό άπειρο και NaN (Όχι αριθμό).
Double.Type Αντιπροσωπεύει έναν αριθμό κινητής υποδιαστολής διπλής ακρίβειας. Έχει κατά προσέγγιση εύρος –1,7976931348623158 X 10307 έως 1,7976931348623158 X 10307 και υποστηρίζει περίπου 17 ψηφία ακρίβειας. Μπορεί επίσης να αντιπροσωπεύει θετικό και αρνητικό άπειρο και NaN (Όχι αριθμό).
Guid.Type Αντιπροσωπεύει μια τιμή κειμένου 128 bit που αποτελείται από 32 δεκαεξαδικές τιμές, χρησιμοποιώντας τον παράγοντα μορφής <8 δεκαεξαδικές τιμές>-<4 δεκαεξαδικές τιμές>-<4 δεκαεξαδικών τιμών>-<4 δεκαεξαδικών τιμών>-<12 δεκαεξαδικών τιμών>, οι οποίες αποτελούν την τιμή GUID.
none Ο τύπος δεδομένων που δεν ταξινομεί τιμές.

Οι μόνες άλλες τιμές που χρησιμοποιούνται συχνά *.Type είναι οι απαριθμήσεις. Για περισσότερες πληροφορίες, μεταβείτε στο Απαριθμήσεις.

Μετατροπή τύπου

Η γλώσσα τύπων Power Query M διαθέτει τύπους για μετατροπή μεταξύ τύπων. Ακολουθεί μια σύνοψη των τύπων μετατροπής στην M.

Αριθμός

Μετατροπή τύπου Περιγραφή
Number.FromText(κείμενο ως κείμενο) ως αριθμός Επιστρέφει μια αριθμητική τιμή από μια τιμή κειμένου.
Number.ToText(αριθμός ως αριθμός) ως κείμενο Επιστρέφει μια τιμή κειμένου από μια αριθμητική τιμή.
Number.From(τιμή ως οποιοσδήποτε) ως αριθμός Επιστρέφει μια αριθμητική τιμή από μια τιμή.
Byte.From(τιμή ως οποιοσδήποτε) ως αριθμός Επιστρέφει μια τιμή ακέραιου αριθμού 8 bit από την παρεχόμενη τιμή.
Int8.From(τιμή ως οποιοσδήποτε) ως αριθμός Επιστρέφει μια τιμή ακέραιου αριθμού 8 bit από την παρεχόμενη τιμή.
Int16.From(τιμή ως οποιοσδήποτε) ως αριθμός Επιστρέφει μια τιμή ακέραιου αριθμού 16 bit από την παρεχόμενη τιμή.
Int32.From(τιμή ως οποιοσδήποτε) ως αριθμός Επιστρέφει μια τιμή ακέραιου αριθμού 32 bit από την παρεχόμενη τιμή.
Int64.From(τιμή ως οποιοσδήποτε) ως αριθμός Επιστρέφει μια τιμή ακέραιου αριθμού 64 bit από την παρεχόμενη τιμή.
Single.From(τιμή ως οποιοσδήποτε) ως αριθμός Επιστρέφει μια τιμή ενός αριθμού από την παρεχόμενη τιμή.
Double.From(τιμή ως οποιοσδήποτε) ως αριθμός Επιστρέφει μια τιμή αριθμού διπλής ακρίβειας από την παρεχόμενη τιμή.
Decimal.From(τιμή ως οποιοσδήποτε) ως αριθμός Επιστρέφει μια τιμή δεκαδικού αριθμού από την παρεχόμενη τιμή.
Currency.From(τιμή ως οποιοσδήποτε) ως αριθμός Επιστρέφει μια τιμή αριθμού νομίσματος από την παρεχόμενη τιμή.
Percentage.From(τιμή ως οποιοσδήποτε) ως αριθμός Επιστρέφει μια τιμή Αριθμού ποσοστού από την παρεχόμενη τιμή.

Κείμενο

Μετατροπή τύπου Περιγραφή
Text.From(τιμή ως οποιαδήποτε) ως κείμενο Επιστρέφει την αναπαράσταση κειμένου ενός αριθμού, ημερομηνίας, ώρας, ημερομηνίας/ώρας, ζώνης ημερομηνίας/ώρας, λογικής, διάρκειας ή δυαδικής τιμής.
Guid.From(τιμή ως κείμενο) ως κείμενο Επιστρέφει την αναπαράσταση GUID του καθορισμένου κειμένου.

Λογικός

Μετατροπή τύπου Περιγραφή
Logical.FromText(κείμενο ως κείμενο) ως λογικό Επιστρέφει μια λογική τιμή true ή false από μια τιμή κειμένου.
Logical.ToText(λογική ως λογική) ως κείμενο Επιστρέφει μια τιμή κειμένου από μια λογική τιμή.
Logical.From(τιμή ως οποιαδήποτε) ως λογική Επιστρέφει μια λογική τιμή από μια τιμή.

Ημερομηνία, Ώρα, Ημερομηνία/Ώρα και Ζώνη ημερομηνίας/ώρας

Μετατροπή τύπου Περιγραφή
. FromText(text as text) as date, time, datetime, or datetimezone Επιστρέφει μια τιμή ημερομηνίας, ώρας, ημερομηνίας/ώρας ή ζώνης ημερομηνίας/ώρας από ένα σύνολο μορφών ημερομηνίας και τιμής κουλτούρας.
. ToText(date, time, dateTime, or dateTimeZone as date, time, datetime, or datetimezone) as text Επιστρέφει μια τιμή κειμένου από μια τιμή ημερομηνίας, ώρας, ημερομηνίας/ώρας ή ζώνης ημερομηνίας/ώρας.
. From(value as any) Επιστρέφει μια τιμή ημερομηνίας, ώρας, ημερομηνίας/ώρας ή ζώνης ημερομηνίας/ώρας από μια τιμή.
. ToRecord(date, time, dateTime, or dateTimeZone as date, time, datetime, or datetimezone) Επιστρέφει μια εγγραφή που περιέχει τμήματα μιας τιμής ημερομηνίας, ώρας, ημερομηνίας/ώρας ή ζώνης ημερομηνίας/ώρας.
  • τύπων
  • συστήματος τύπου Power Query M