2016-05-05 9 views
0

Ich erstelle einen Prozess, der schließlich Daten von einem Ort in einen anderen bringt. Dazu muss ich meine Daten transformieren.Überprüfen Sie, ob Felder in einer Spalte Datumsangaben sind, und konvertieren Sie sie.

Ich habe eine Spalte, die Zeichenfolge der enthält und Daten

timestamp 
20POST /xxxei/adsa/ContentVis HTTP/1.1 Host: fa.aweb.com 
2016-12-18T00:15:10.289Z 
2016-11-06T04:09:54.503Z 

ich dies tat:

select cast(left("timestamp",10) as timestamp) 

aber jetzt ist mein Prozess fehlschlägt, weil ich nicht für dieses Konto haben, als ein Wert :

20POST /xxxei/adsa/ContentVis HTTP/1.1 Host: fa.aweb.com 

Mein System der Funktion ISDATE nicht nehmen(), habt ihr irgendwelche Ideen dieses cinco d e Mayo.

+1

Welche DBMS verwenden Sie? Unterstützt es reguläre Ausdrücke? – mustaccio

+0

Ja, es unterstützt reguläre Ausdrücke. Ich verwende Actian Analytics Database – Will

Antwort

0

Sie können eine Funktion wie DAY() für diese Zeichenfolge verwenden. wenn es null zurückgibt, dann ist es kein gültiges Datum

Speziellere zu Ihrem Fall:

SELECT DAY('20POST /xxxei/adsa/ContentVis HTTP/1.1 Host: fa.aweb.com') IS NOT NULL as is_date; 

SELECT DAY('2016-12-18T00:15:10.289Z') IS NOT NULL as is_date; 
Verwandte Themen