Mit Sammlungen den Überblick behalten
Sie können Inhalte basierend auf Ihren Einstellungen speichern und kategorisieren.
Datentypen der Legacy-SQL-Version
In diesem Dokument werden die Datentypen erläutert, die von der Legacy-SQL-Abfragesyntax von BigQuery unterstützt werden. Die bevorzugte Abfragesyntax für BigQuery ist GoogleSQL. Weitere Informationen zu Datentypen in GoogleSQL finden Sie unter GoogleSQL-Datentypen.
Datentypen der Legacy-SQL-Version
Die folgenden Datentypen sind für Ihre Daten zulässig:
Datentyp
Mögliche Werte
STRING
UTF-8-Daten mit variabler Länge.
BYTES
Binäre Daten mit variabler Länge.
Importierte BYTES-Daten müssen base64-verschlüsselt sein. Eine Ausnahme hierzu sind Avro BYTES-Daten, die von BigQuery gelesen und umgewandelt werden können.
Aus einer BigQuery-Tabelle gelesene BYTES-Daten sind normalerweise base64-verschlüsselt. Führen Sie jedoch einen Export ins Avro-Format durch, wird der Avro-Bytes-Datentyp angewendet.
INTEGER
Vorzeichenbehaftete 64-Bit-Ganzzahl.
Wenn Sie die BigQuery API verwenden, um eine Ganzzahl außerhalb des Bereichs von [-253+1, 253-1] (in den meisten Fällen bedeutet dies größer als 9.007.199.254.740.991), in eine Ganzzahlspalte (INT64) zu laden, müssen Sie diese als String übergeben, damit keine Daten beschädigt werden.
Dieses Problem wird durch eine Beschränkung der Ganzzahlgröße im JSON/ECMAScript verursacht.
Weitere Informationen finden Sie im Bereich "Numbers" von RFC 7159.
CSV-Format:1 oder 0, true oder false, t oder f, yes oder no, oder y oder n (keine Berücksichtigung der Groß- und Kleinschreibung).
JSON-Format:true oder false (keine Berücksichtigung der Groß- und Kleinschreibung).
RECORD
Eine Sammlung von einem oder mehreren Feldern.
TIMESTAMP
Die TIMESTAMP-Datentypen können entweder als UNIX-Zeitstempel oder Kalender-Datetimes beschrieben werden. BigQuery speichert TIMESTAMP-Daten intern als UNIX-Zeitstempel mit Mikrosekundenpräzision.
UNIX-Zeitstempel
Eine positive oder negative Dezimalzahl. Eine positive Zahl gibt die Anzahl an Sekunden an, die seit der Epoche (1970-01-01 00:00:00 UTC) vergangen sind, und eine negative Zahl die Anzahl an Sekunden vor der Epoche. Bis zu 6 Dezimalstellen (Mikrosekundenpräzision) werden bewahrt.
Datum- und Uhrzeit-Strings
Ein Datum- und Uhrzeit-String mit dem Format YYYY-MM-DD HH:MM:SS. Es werden die Bezeichner UTC und Z unterstützt.
In den Datum- und Uhrzeit-Strings kann ein Zeitzonen-Offset angegeben werden; dieses Offset wird von BigQuery jedoch bei der Umwandlung des Werts in sein internes Format nicht beibehalten. Falls Sie die ursprünglichen Zeitzonen-Daten erhalten müssen, speichern Sie das Zeitzonen-Offset in einer separaten Spalte. Die führende Null ist erforderlich, wenn Sie ein einstelliges Zeitzonen-Offset angeben.
Bei der Verwendung des JSON-Formats müssen die Datum- und Uhrzeit-Strings in Anführungszeichen gesetzt werden.
Beispiele
Die folgenden Beispiele zeigen die Darstellung identischer Daten einmal im UNIX-Zeitstempelformat und im Datums- und Uhrzeit-Stringformat.
Ereignis
UNIX-Zeitstempelformat
Datum-/Uhrzeit-Stringformat
Leichtes (M4.2) Erdbeben in der Nähe von Oklahoma City
Die Legacy-SQL-Version unterstützt DATE nur begrenzt. Weitere Informationen finden Sie unter Amtliche Zeit in Legacy-SQL.
TIME
Die Legacy-SQL-Version unterstützt TIME nur begrenzt. Weitere Informationen finden Sie unter Amtliche Zeit in Legacy-SQL.
DATETIME
Die Legacy-SQL-Version unterstützt DATETIME nur begrenzt. Weitere Informationen finden Sie unter Amtliche Zeit in Legacy-SQL.
Exakte numerische Werte in Legacy-SQL
Sie können NUMERIC- oder BIGNUMERIC-Werte in nicht modifizierenden Klauseln wie SELECT list (with aliases), GROUP BY keys und Pass-Through-Feldern in Fensterfunktionen usw. lesen. Jede Berechnung über NUMERIC oder BIGNUMERIC Werte, einschließlich Vergleichen, führt jedoch zu nicht definierten Ergebnissen.
In der Legacy-SQL-Version werden die folgenden Cast- und Conversion-Funktionen unterstützt:
CAST(<numeric> AS STRING)
CAST(<bignumeric> AS STRING)
CAST(<string> AS NUMERIC)
CAST(<string> AS BIGNUMERIC)
Amtliche Zeit in Legacy-SQL
Die Datentypen für die amtliche Zeit (DATE, TIME und DATETIME) können gelesen und mit nicht-ändernden Operatoren wie SELECT list (with aliases), GROUP BY keys und Pass-Through-Feldern in Fensterfunktionen usw. verarbeitet werden. Jegliche andere Berechnungen mit Werten für die amtliche Zeit (einschließlich Vergleichen) führen zu undefinierten Ergebnissen.
Die folgenden CAST- und CONVERSION-Funktionen werden in der Legacy-SQL-Version unterstützt:
CAST(<date> AS STRING)
CAST(<time> AS STRING)
CAST(<datetime> AS STRING)
CAST(<string> AS DATE)
CAST(<string> AS TIME)
CAST(<string> AS DATETIME)
Dabei sieht es in der Praxis jedoch so aus, dass Legacy-SQL die Amtliche-Zeit-Werte als Ganzzahlen interpretiert, und Operationen mit Ganzzahlen, bei denen davon ausgegangen wird, dass es Amtliche-Zeit-Werte sind, zu unerwarteten Ergebnissen führen.
Für die Berechnung von Werten mit Datentypen, die auf amtlicher Zeit beruhen, sollte die GoogleSQL-Version verwendet werden, die alle SQL-Vorgänge mit den Datentypen DATE, DATETIME und TIME unterstützt.
Nächste Schritte
Mehr zum Festlegen des Datentyps eines Felds finden Sie unter schema.fields.type.
Informationen zu GoogleSQL-Datentypen finden Sie unter Datentypen.
[[["Leicht verständlich","easyToUnderstand","thumb-up"],["Mein Problem wurde gelöst","solvedMyProblem","thumb-up"],["Sonstiges","otherUp","thumb-up"]],[["Schwer verständlich","hardToUnderstand","thumb-down"],["Informationen oder Beispielcode falsch","incorrectInformationOrSampleCode","thumb-down"],["Benötigte Informationen/Beispiele nicht gefunden","missingTheInformationSamplesINeed","thumb-down"],["Problem mit der Übersetzung","translationIssue","thumb-down"],["Sonstiges","otherDown","thumb-down"]],["Zuletzt aktualisiert: 2025-08-17 (UTC)."],[[["\u003cp\u003eLegacy SQL supports a variety of data types, including STRING, BYTES, INTEGER, FLOAT, NUMERIC, BIGNUMERIC, BOOLEAN, RECORD, TIMESTAMP, DATE, TIME, and DATETIME.\u003c/p\u003e\n"],["\u003cp\u003eLegacy SQL has limited support for NUMERIC, BIGNUMERIC, DATE, TIME, and DATETIME data types, restricting their use to non-modifying operations and specific casting functions.\u003c/p\u003e\n"],["\u003cp\u003eFor data types such as BYTES, BigQuery reads and converts Avro BYTES data, and when reading from BigQuery tables it are base64-encoded unless exported to Avro format.\u003c/p\u003e\n"],["\u003cp\u003eTIMESTAMP data can be represented as either UNIX timestamps or date and time strings, with BigQuery internally storing them as UNIX timestamps with microsecond precision.\u003c/p\u003e\n"],["\u003cp\u003eWhile legacy SQL provides these types, GoogleSQL is the preferred query syntax and offers full support for all SQL operations on DATE, DATETIME, and TIME data types.\u003c/p\u003e\n"]]],[],null,["# Legacy SQL data types\n=====================\n\n\nThis document details the data types supported by BigQuery's\nlegacy SQL query syntax. The preferred query syntax for BigQuery\nis GoogleSQL. For information on data types in GoogleSQL, see\nthe [GoogleSQL data types](/bigquery/docs/reference/standard-sql/data-types).\n\nLegacy SQL data types\n---------------------\n\nYour data can include the following data types:\n\nExact numeric in legacy SQL\n---------------------------\n\nYou can read NUMERIC or BIGNUMERIC values in non-modifying clauses such as\n`SELECT list (with aliases)`, `GROUP BY keys`, and pass-through fields in\nwindow functions, and so on. However, any computation over NUMERIC or\nBIGNUMERIC values, including comparisons, produces undefined results.\n\nThe following cast and conversion functions are supported in legacy SQL:\n\n- `CAST(\u003cnumeric\u003e AS STRING)`\n- `CAST(\u003cbignumeric\u003e AS STRING)`\n- `CAST(\u003cstring\u003e AS NUMERIC)`\n- `CAST(\u003cstring\u003e AS BIGNUMERIC)`\n\nCivil time in legacy SQL\n------------------------\n\nYou can read civil time data types---DATE, TIME, and\nDATETIME---and process them with non-modifying operators such as\n`SELECT list (with aliases)`, `GROUP BY keys`, and pass-through fields in\nwindow functions, etc. However, any other computation over civil time values,\nincluding comparisons, produces undefined results.\n\nThe following casts and conversion functions are supported in legacy SQL:\n\n- `CAST(\u003cdate\u003e AS STRING)`\n- `CAST(\u003ctime\u003e AS STRING)`\n- `CAST(\u003cdatetime\u003e AS STRING)`\n- `CAST(\u003cstring\u003e AS DATE)`\n- `CAST(\u003cstring\u003e AS TIME)`\n- `CAST(\u003cstring\u003e AS DATETIME)`\n\nIn practice, legacy SQL interprets civil time values as integers, and operations\non integers that you think are civil time values produce unexpected results.\n\nTo compute values using civil time data types, consider\n[GoogleSQL](/bigquery/sql-reference), which supports all SQL\noperations on the\n[DATE](/bigquery/sql-reference/data-types#date-type),\n[DATETIME](/bigquery/sql-reference/data-types#datetime-type), and\n[TIME](/bigquery/sql-reference/data-types#time-type) data types.\n\nWhat's next\n-----------\n\n- To set a field's data type using the API, see [`schema.fields.type`](/bigquery/docs/reference/rest/v2/tables#TableFieldSchema.FIELDS.type).\n- For GoogleSQL data types, see [data types](/bigquery/sql-reference/data-types)."]]