Presto SQL - Konvertierung eines Datums-string zu Datum-format
Ich bin auf presto und haben ein Datum formatiert als varchar, das aussieht wie -
7/14/2015 8:22:39 AM
Hab mir die presto-docs und versuchte, durch verschiedene Dinge(cast, date_format, mit split_part zu analysieren und dann gegossen) und bin nicht immer dieses umwandeln in ein Datum-format, das ich verwenden kann, mit Funktionen wie date_diff.
Ich versucht habe:
cast(fieldname as timestamp)
date_format(fieldname, '%Y-%m-%d %T)
Beide geben mir eine Fehlermeldung wie diese
'Value cannot be cast to timestamp: 3/31/2016 6:05:04 PM'
Wie konvertiere ich diese?
Ich denke, dass ein problem mit dem Datumsformat. Können Sie das format ändern, wie dies
Sie sollten versuchen, die ISO-8601-format "2016-03-31 18:05:04". Ich bin fast sicher, sollte es funktionieren
ich habe versucht
Nicht
das könnte eine Formatierung der Ausgabe mit den Daten aber, die führende 0 ist, was den cast Fehler beheben sollten. Aber selbst, wenn ich die führende 0 das obige Beispiel, ich bekomme immer noch den gleichen Fehler.
2016-03-31 6:05:04 PM
und warf es ?Sie sollten versuchen, die ISO-8601-format "2016-03-31 18:05:04". Ich bin fast sicher, sollte es funktionieren
ich habe versucht
select cast('2016-03-31 6:05:04 PM' as timestamp)
- und dies nicht funktioniert, entwederNicht
6:05:04 PM
ist zu 06:05:04
für BIN und 18:05:04
für PM.das könnte eine Formatierung der Ausgabe mit den Daten aber, die führende 0 ist, was den cast Fehler beheben sollten. Aber selbst, wenn ich die führende 0 das obige Beispiel, ich bekomme immer noch den gleichen Fehler.
InformationsquelleAutor Moosa | 2016-10-05
Du musst angemeldet sein, um einen Kommentar abzugeben.
Habe ich es herausgefunden. Die folgenden arbeiten bei der Umsetzung einer 24-Stunden-format Datum.
InformationsquelleAutor Moosa
Umgewandelt DateID mit Datum im Int-format Datum-format: Presto-Abfrage
InformationsquelleAutor Rajiv Singh
SQL-2003-standard definiert das format wie folgt:
Gibt es einige Definitionen, die in zwischen, dass einfach ein link zurück auf diese, aber in kurzer
YYYY-MM-DD HH:MM:SS
mit optional.mmm
Millisekunden, die erforderlich ist, um die Arbeit auf alle SQL-Datenbanken.select cast('2016-03-31 6:05:04 PM' as timestamp)
es funktioniert nicht. aber wenn ich entfernen, am/pm und tunselect cast('2016-03-31 6:05:04' as timestamp)
dann funktioniert es. aber ich brauche das am/pm oder konvertieren zu 24 Stunden.Wenn Sie darauf bestehen, mit dem nicht-standard -
3/31/2016 6:05:04 PM
laut der Dokumentation wird das format%c/%e/%y %r
. Haben Sie einen Blick prestodb.io/docs/current/functions/datetime.htmldas ist, wie meine Daten formatiert ist. ich bin bereit, zu formatieren, aber nicht wissen wie. das ist meine Frage. pro der Kommentar oben, wenn ich
date_format('7/22/2016 6:05:04 PM', '%c/%e/%y %r')
das gibt mir einen Fehler zuInformationsquelleAutor coladict
Verwenden:
cast(date_parse(inv.date_created,'%Y-%m-%d %h24:%i:%s') as date)
Eingang:
String timestamp
Ausgabe:
date format 'yyyy-mm-dd'
InformationsquelleAutor VINOD KUMAR KEDARNATH