Ich versuche, das Mindestdatum aus einer varchar
Zeichenfolge zu extrahieren.Extract Min Date aus einer Zeichenfolge mit mehreren Datumsangaben mit SQL Server
Die Daten im Bereich sieht wie folgt aus
QTY DIFFERENCE - PO LINE 6. 147 ON PO/192 ON INVOICE
5/18/2016 4:18:52 PM by ROOFING\ebuchanan
ANDREW SANTORI ISSUED THIS PO, PLEASE SEND TO HIS QUE
5/21/2016 9:48:42 AM by ROOFING\knaylor
RE-ROUTED TO ATS
diesen Code verwenden
SELECT
UISeq,
LEFT(SUBSTRING(Notes, PATINDEX('%[0-9/]%', Notes), 8000),
PATINDEX('%[^0-9/]%', SUBSTRING(Notes, PATINDEX('%[0-9/]%', Notes), 8000) + 'X') -1) as 'MaxDate'
FROM
bAPUI
WHERE
Notes IS NOT NULL
ORDER BY
UISeq
ich dieses Ergebnis erhalten aus dem Datensatz über
6
ich auch
01/01/2000
Auf anderen Feldern
Wie korrigiere ich den Code, um nur das Min-Datum in jedem Datensatzfeld zurückzugeben?
UISeq MinDate
2 3
3 5
13 4/1/2016
15 1
17
18 4/15/2016
19 3
20 4/15/2016
40 05/22/16
43 05/22/16
54 5/18/16
Johns Beitrag über meine derzeitige Fähigkeit ist
ich die Funktion erstellt haben, hier ist der Code die Daten
Declare @Str varchar(max);
Select @Str as Notes, Min(Key_Value)
from bAPUI, [dbo].[SA-udf-Str-Parse](replace(@Str,char(13),' '),' ')
Where Key_Value like '%/%'
and len(Key_Value)>=10
Was ich verstehen mich nicht zu extrahieren ist, wie die bAPUI bekommen .Notes Tabelle/Feld in die Select-Anweisung.
Viel Glück durchführen wird. Diese Art der Analyse von Daten, die als freier Text erscheinen, ist grenzwertig unmöglich. Es gibt einfach nichts Konkretes, das Sie verwenden können, um zu identifizieren, wo ein Datum beginnt oder wo es endet.Sie könnten die Daten wahrscheinlich isolieren, aber es wäre schwierig, das zu erweitern, um den Zeitabschnitt einzuschließen. –
Ist die Probe, die Sie gepostet haben, der Inhalt einer einzelnen Zeile? Oder sind das mehrere Zeilen? Einen Einblick in Ihren Tisch zu geben, wird Ihnen hier sehr gut tun. –
Sean Ich mache mir keine Sorgen um die Zeit, nur das Datum. Danke – Steve