Ongoing service disruptions
For the most recent update on ongoing service disruptions affecting the AWS Middle East (UAE) Region (ME-CENTRAL-1), refer to the AWS Health Dashboard. For information on AWS Service migration, see How do I migrate my services to another region?
Wie kann ich Zeitstempel-Ausnahmen lösen, wenn ich eine Tabelle in Athena abfrage?
Wenn ich eine Spalte mit TIMESTAMP-Daten in meiner Amazon Athena-Tabelle abfrage, erhalte ich eine Ausnahme.
Kurzbeschreibung
Wenn du eine Athena-Tabelle mit TIMESTAMP-Daten abfragen, schlägt die Abfrage möglicherweise mit einer der folgenden Ausnahmen fehl:
- "TYPE_MISMATCH: line 1:49: Cannot apply operator: timestamp(3) < varchar(19)": Diese Ausnahme kann auftreten, wenn du in deiner Abfrage einen logischen Operator wie '>' zwischen den Werten TIMESTAMP und STRING verwendet hast.
- "cast(col as timestamp) with INVALID_CAST_ARGUMENT": Wenn du CAST für eine Spalte mit einem Datentyp verwendest, den Athena nicht unterstützt, tritt möglicherweise diese Ausnahme auf.
Lösung
Syntaxfehler bei logischen Operatoren
Wenn deine Abfrage einen logischen Operator zum Vergleichen von Zeitstempelwerten verwendet, erhältst du möglicherweise einen Ausnahmefehler.
Die TIMESTAMP-Daten in deiner Tabelle haben möglicherweise das falsche Format. Athena benötigt das Java TIMESTAMP-Format. Verwende die Trino-Datums- und Uhrzeitfunktion, um STRING in der Abfragefilterbedingung in TIMESTAMP zu konvertieren, oder verwende CAST, um STRING in TIMESTAMP zu konvertieren. Weitere Informationen findest du auf der Trino-Website unter Funktionen und Operatoren für Datum und Uhrzeit.
Führe die folgenden Schritte aus:
- Erstelle eine Tabelle mit Zeitstempeldaten im STRING-Format, ähnlich dem folgenden Beispiel:
Hinweis: Ersetzen testdataset1, testid1, testname1 und testtimestamp1 durch deine Werte.CREATE TABLE testdataset1 AS SELECT testid1, testname1, date_parse(testtimestamp1, '%m/%d/%Y %h:%i:%s %p') AS testtimestamp1 FROM ( VALUES (1, 'a', '7/14/2020 8:22:39 AM'), (2, 'b', '8/01/2015 10:22:39 PM'), (3, 'c', '8/13/2017 4:22:39 AM') ) AS t(testid1, testname1, testtimestamp1) - Verwende die CAST-Funktion auf den STRING-Wert, um den Zeitstempelfilter anzuwenden:
Hinweis: Ersetze testdataset1 und testtimestamp1 durch deine Werte.SELECT * FROM testdataset1 WHERE testtimestamp1 < CAST('2020-07-14 00:00:00' AS timestamp)
Ungültige Argumentfehler mit CAST
Wenn du CAST verwendest, um eine Spalte in den TIMESTAMP-Datentyp zu konvertieren, erhältst du möglicherweise einen Ausnahmefehler.
Der Datentyp der Spalte, die du in TIMESTAMP umwandeln möchtest, ist möglicherweise ein Typ, den Athena nicht unterstützt. Verwende die Datums- und Uhrzeitfunktionen von Trino, um die Spalte in deiner Abfrage als DATUM oder TIMESTAMP zu lesen. Weitere Informationen findest du auf der Trino-Website unter Funktionen und Operatoren für Datum und Uhrzeit.
Führe die folgenden Schritte aus:
- Erstelle eine Tabelle ähnlich dem folgenden Beispiel:
Hinweis: Ersetze testdataset2, testid2, testname2 und testtimestamp2 durch deine Werte.CREATE TABLE testdataset2 AS SELECT * FROM (VALUES (1, 'a', '7/14/2020 8:22:39 AM'), (2, 'b', '8/01/2015 10:22:39 PM'), (3, 'c', '8/13/2017 4:22:39 AM') ) AS t(testid2, testname2, testtimestamp2) - Verwende die Trino-Funktion date_parse, um deine Tabelle in das Java-TIMESTAMP-Format zu konvertieren:
Hinweis: Ersetze testdataset2, testid2, testname2 und testtimestamp2 durch deine Werte.SELECT testid2, testname2, date_parse(testtimestamp2, '%m/%d/%Y %h:%i:%s %p') AS testtimestamp2 FROM testdataset2
Ähnliche Informationen
Warum ist das TIMESTAMP-Ergebnis leer, wenn ich eine Tabelle in Amazon Athena abfrage?
- Themen
- Analytics
- Tags
- Amazon Athena
- Sprache
- Deutsch
Ähnliche Videos


Relevanter Inhalt
AWS OFFICIALAktualisiert vor 7 Monaten
AWS OFFICIALAktualisiert vor 4 Jahren
AWS OFFICIALAktualisiert vor 7 Monaten