[FIXED] So extrahieren Sie Tag, Stunde und Minute aus einer Zeichenfolge in SQL Server

Ausgabe

Ich habe eine Spalte, die folgende Werte enthält:

Duration
--------
minute45hour1day0
minute8hour10day2
minute15hour2day11
...

Ich möchte Tag, Stunde und Minute in eine andere Spalte extrahieren:

day | hour | minutes
----+------+--------
 0  |  1   | 45
 2  | 10   |  8
11  |  2   | 15

Um den Tag zu bekommen, an dem ich müde bin:

LEFT(StageDuration, CHARINDEX('day', Duration) - 1) AS day,

Lösung

Hier ist meine Lösung:

SELECT
REVERSE(PARSENAME(REVERSE(REPLACE( REPLACE( replace('minute45hour1day0','minute',''),'hour' ,'.') , 'day','.')), 1)) AS minute ,
REVERSE(PARSENAME(REVERSE(REPLACE( REPLACE( replace('minute45hour1day0','minute',''),'hour' ,'.') , 'day','.')), 2)) AS hour ,
REVERSE(PARSENAME(REVERSE(REPLACE( REPLACE( replace('minute45hour1day0','minute',''),'hour' ,'.') , 'day','.')), 3)) AS day

Bitte überprüfen Sie auch PARSENAME , um die Logik zu verstehen

RÜCKWÄRTS ist einfach. Bsp.: ali -> ila


Beantwortet von –
Ali Fidanli


Antwort geprüft von –
Timothy Miller (FixError Admin)

0 Shares:
Leave a Reply

Your email address will not be published. Required fields are marked *

You May Also Like